zoukankan      html  css  js  c++  java
  • POJ 1068 Parencodings

    1. 好久没碰到这种难度的题了:看题没思路,经过思考,推算,一次AC。以前的题要不太难,只能看解题报告,要不太简单,不用思考,这种难度的题正好适合我;

    2. 具体思路是通过P序列还原成括号序列,然后通过括号序列得到W序列的值。注意map[ p[ i ] + i]  = ‘)’。通过flag数组标记“)”之前的没有匹配的左括号;

    3. 这道题属于模拟题(以后知道题的类型就分个类);


    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main()
    {
        int i, j, k, tmp, t, n;
        int P, W[22], map[50], flag[50];//0=(           1=)
        cin >> t;
        while (t--)
        {
            cin >> n;
            memset(map, 0, sizeof(map));
            memset(flag, 0, sizeof(flag));
            for(i = 1; i <= n; i++)
            {
                cin >> P;
                map[P + i] = 1;
            }
            for(i = 1; i <= 2 * n; i++)
                if (map[i] == 0)
                    flag[i] = 1;
                else flag[i] = 2;
    
            for(i = 1, j = 1; i <= 2 * n; i++)
                if (map[i] == 1)
                {
                    tmp = 1;
                    for (k = i; k > 0; k--)
                    {
                        if (flag[k] == 0)
                        {
                            tmp++;
                            continue;
                        }
                        else if (flag[k] == 1)
                        {
                            W[j] = tmp;
                            flag[k] = 0;
                            j++;
                            break;
                        }
                    }
                }
            for (i = 1; i <= n; i++)
                cout << W[i] << ' ';
            cout << endl;
        }
        return 0;
    }
    


  • 相关阅读:
    Quartz 配置
    8-6 泛型
    8-6 泛型
    HttpUrlConnect post提交
    正则表达式的简单运用
    bat ren命令修改文件后缀名
    集合的有序和重复
    一定要为HttpUrlConnection设置connectTimeout属性以防止连接被阻塞
    List toArray() toArray(T[] a)
    CSS选择器
  • 原文地址:https://www.cnblogs.com/dollarzhaole/p/3188933.html
Copyright © 2011-2022 走看看