???为什么会编译失败???本地都没问题啊
  • 板块灌水区
  • 楼主Gnasvl
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/9/10 10:31
  • 上次更新2023/11/2 21:42:00
查看原帖
???为什么会编译失败???本地都没问题啊
590596
Gnasvl楼主2023/9/10 10:31

P5658

#include<bits/stdc++.h>
using namespace std;
char st[114514];
int n,ans=0,check_backet,lst[114514],backets[114514],sum[114514];
int main(){
    cin>>n>>st+1;
    for(int i=1;i<=n;i++){
    	if(st[i]==')'){
			if(check_backet==0){//判断栈是否为空 
				sum[i]=sum[i-1]+lst[i];
				continue;
			}
        	int t=backets[check_backet];//匹配的前括号的位置 
			lst[i]=lst[t-1]+1;//计算贡献值
        	check_backet--;
    	}
    	else if(st[i]=='(') backets[++check_backet]=i;//是前括号,就压入它的位置
    	sum[i]=sum[i-1]+lst[i];
    }
    for(int i=1;i<=n;i++) ans^=(sum[i]*i);
    cout<<ans;
    return 0;
}

record

2023/9/10 10:31
加载中...