Cf #602 C - Messy (构造,思维)

给你一个 n 和一个 k,再给你一个由括号组成的字符串,告诉你括号的数量一定是成对的。

你可以有若干次操作,数量不限,把字符串中的一段倒置。

问你如何操作能使字符串配成 k 个“正则括号”,即括号能组合成 k个整体。例如:()()()k等于 3 ;(()()())k等于 1 ;(()())()k等于 2 。


构造一个答案,然后如果原串和答案串不一样就往后找到第一个一样的,把这一段倒置,感觉很暴力的写法。。
int main()
{
    int t;cin>>t;
    while(t--)
    {
        int n,k;cin>>n>>k;
        string s,v="";
        cin>>s;
        rep(i,k-1) v+="()";
        int yu=(n-(int)v.size())/2;
        rep(i,yu) v+="(";  rep(i,yu) v+=")";
        vector<pii >ans;
        rep(i,n)
        {
            if(s[i]!=v[i])
            {
                for(int j=i+1;j<n;++j)
                {
                    if(s[j]==v[i])
                    {
                        ans.push_back(make_pair(i+1,j+1));
                        reverse(s.begin()+i,s.begin()+j+1);
                        break;
                    }
                }
            }
        }
        cout<<ans.size()<<endl;
        for(auto x: ans)
            cout<<x.first<<" "<<x.second<<endl;
    }
    //stop;
    return 0;
}


全部评论

相关推荐

最近拿到了正浩的提前批offer感觉自己的实力得到了肯定,也给了我更多底气
搞机墨镜猫:正浩提前批官网好像就只有电力电子软硬件,哥们投的是这两个岗位吗
26届校招投递进展
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:46
暑期就挂了,秋招还有机会吗
大聪明777:研发提前批,14号刚开的,官网上面的配图上有写。提前批没过的话,秋招还可以投,不过前面的笔试/面试记录会被保留,供秋招参考
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务