社区讨论
这什么离谱BUG
P12723 [KOI 2021 Round 2] 括号值比较参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mc0m3l6a
- 此快照首次捕获于
- 2025/06/17 22:21 9 个月前
- 此快照最后确认于
- 2025/06/18 22:21 9 个月前
不是我修改了好几遍一直在错,下载了一个数据点发现我的输出和样例输出一样,有没有大佬指导一下谢谢。
CPP#include<bits/stdc++.h>
using namespace std;
const int N=1500001;
int T,x[1500001],y[1500001],l1,l2,l;
string s1,s2;
void dfs(string s,int f[]){
int cnt=1;
for(int i=0;i<s.size();i++){
if(s[i]=='(') cnt++;
else{
cnt--;
if(s[i-1]=='('){
int k=cnt;
f[k]++;
while(f[k]>=2){
f[k]=0;
f[k+1]++;
}
}
}
}
}
int cmp(int a[],int b[]){
for(int i=N;i>=1;i--){
if(a[i]>b[i]) return 2;
if(a[i]<b[i]) return 0;
}
return 1;
}
int main(){
scanf("%d",&T);
while(T--){
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
l1=0,l2=0,l=1;
cin>>s1>>s2;
dfs(s1,x);
dfs(s2,y);
int pd=cmp(x,y);
if(pd==0) printf("<\n");
if(pd==1) printf("=\n");
if(pd==2) printf(">\n");
}
return 0;
}
解决必关
回复
共 0 条回复,欢迎继续交流。
正在加载回复...