码迷,mamicode.com
首页 > 其他好文 > 详细

20171108 模拟题 T1

时间:2017-11-08 22:20:42      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:链表   ==   color   模拟   clu   png   cout   for   img   

T1

 

 

技术分享

 

 

为什么要写这个题呢?

我只是想说:链表也能做!!

QAQAQ

可是……细节什么的考场写的好晕……

(其实我不想解释代码了QAQAQ

Codes:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;
const int N = 100000 + 10;
char s[N];
int ans,ans1,ans2;
int pre[N],nxt[N];
int main(){
    //freopen("shower.in","r",stdin);
    //freopen("shower.out","w",stdout);
    scanf("%s",s + 1);
    int len = strlen(s + 1);
    for(int i = 1;i <= len;++ i){
        pre[i] = i - 1;
        nxt[i - 1] = i;
    }
    nxt[len] = len + 1;
    pre[len + 1] = len;
    if(s[1] != () ans ++;
    if(s[len] != )) ans ++;
    s[1] = (,s[len] = );
    for(int i = 1;i < len;i = nxt[i]){
        if(pre[i] == 0 && s[i] == )){
            ans ++;
            s[i] = (;
        } 
        if(nxt[i] == len + 1 && s[i] == (){
            ans ++;
            s[i] = );
        }
        if(s[nxt[i]] == ) && s[i] == (){
            nxt[pre[i]] = nxt[nxt[i]];
            pre[nxt[nxt[i]]] = pre[i];
        }
        if(s[pre[i]] == ( && s[i] == )){
            nxt[pre[pre[i]]] = nxt[i];
            pre[nxt[i]] = pre[pre[i]];
        }
    }
    int sum = 0;
    for(int i = 0;i < len + 1;i = nxt[i]){
        if(s[nxt[i]] == (){
             sum ++;
        }
    }
    cout << ans + (sum / 2) << \n;
    return 0;
}

 

20171108 模拟题 T1

标签:链表   ==   color   模拟   clu   png   cout   for   img   

原文地址:http://www.cnblogs.com/Loizbq/p/7806325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!