poj 1068 模拟

简介: 大概题意就是告诉你有个n个小括号,每一个“)”左边有多少个“(”都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身)。思路: 我先计算每个“)”左边有多少个“(”要匹配,然后每遇到一个“)”,然后向前寻找第一个可以匹配的“(”,找到后将其数量减一,这样的话在寻找的过程中经过了几个“)”就表示这对括号里面有多少括号。

大概题意就是告诉你有个n个小括号,每一个“)”左边有多少个“(”都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身)。


思路:


      我先计算每个“)”左边有多少个“(”要匹配,然后每遇到一个“)”,然后向前寻找第一个可以匹配的“(”,找到后将其数量减一,这样的话在寻找的过程中经过了几个“)”就表示这对括号里面有多少括号。

//poj 1068
//2013-07-17-08.45
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int a[25];
int lift[25];
int main()
{
    int t, n;
    scanf("%d", &t);
    while (t--)
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++)
            scanf("%d", &a[i]);
        lift[1] = a[1]-1;
        printf("1");
        for (int i = 2; i <= n; i++)
        {
            lift[i] = a[i] - a[i-1];
            int cnt = 0;
            for (int j = i; j > 0; j--)
            {
                if (lift[j] == 0)
                    cnt++;
                else
                {
                    lift[j]--;
                    break;
                }
            }
            printf(" %d", cnt+1);
        }
        puts("");
    }
    return 0;
}
目录
相关文章
|
23天前
|
算法 测试技术 C#
【动态规划】1223. 掷骰子模拟
【动态规划】1223. 掷骰子模拟
|
5月前
【每日一题Day114】LC1223 掷骰子模拟 | 记忆化搜索+dp
【每日一题Day114】LC1223 掷骰子模拟 | 记忆化搜索+dp
31 0
|
9月前
力扣 模拟小专题
力扣 模拟小专题
33 0
|
10月前
|
存储 机器人 C++
leetcode 每日一题 874. 模拟行走机器人 c++模拟解法
简单来说就是机器人在一个矩阵上移动 我们要找到一个离原点的一个最大欧式距离的平方
96 0
|
存储
【每日一题Day88】LC2293极大极小游戏 | 模拟 递归
思路:数组中的元素被使用过就不再被使用,因此可以将第i ii对计算得到的结果,存储至nums[i]
63 0
|
C语言
动态规划与模拟
我的通过代码: 总体思路是找到第一个打印的数与n的关系(first=n*(n+1)/2)。第一行最多有n个数,之后n--,找一个数保存最大列,然后答案印完一行,列数就减一。
102 0
动态规划与模拟
牛客练习赛71——回文数(模拟+细节)
牛客练习赛71——回文数(模拟+细节)
60 0
洛谷P1067-多项式输出(模拟好题!)
洛谷P1067-多项式输出(模拟好题!)
洛谷P1734-最大约数和(模拟01背包)
洛谷P1734-最大约数和(模拟01背包)
洛谷P1734-最大约数和(模拟01背包)
|
人工智能 BI
洛谷P2006-赵神牛的游戏(模拟)
洛谷P2006-赵神牛的游戏(模拟)