社区讨论

求助,未知问题求解

P3952[NOIP 2017 提高组] 时间复杂度参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mi3yi0yg
此快照首次捕获于
2025/11/18 10:30
4 个月前
此快照最后确认于
2025/11/18 23:50
4 个月前
查看原帖
RT,本人的C++代码在自己的电脑上测试了下载的#6的数据,结果和下载的答案一样,可洛谷上评测的却显示第6个点WA了,且第二行输出No,但我的是Yes
以下是我的代码
CPP
#include<bits/stdc++.h>
using namespace std;
char a[10000];
int cf,t[50],dl[100],bs[100],sj[100];
void chuli(){
	cin>>a;
	cf=0;
	int l=strlen(a);
	if(l==4)return ;
	for(int i=4;i<l-1;i++)cf=cf*10+a[i]-'0';
	return ;
}
int main(){
//	freopen("P3952_6.in","r",stdin);
//	freopen("ans.out","w",stdout);
	int T;
	cin>>T;
	while(T--){
		int l;
		cin>>l;
		chuli();
		dl[0]=sj[0]=bs[0]=0;
		bs[++bs[0]]=1;
		for(int i=0;i<=26;i++)t[i]=0;
		int now=0,la=1,sg=0;
		int maxx=0;
		int pd=0;
		for(int i=1;i<=l;i++){
			char A;
			cin>>A;
			if(A=='F'){
				char bl;
				char X[3],Y[3];
				int x,y;
				cin>>bl>>X>>Y;
				if(pd==1)continue;
				if(X[0]=='n')x=100;
				else if(strlen(X)==2)x=(X[0]-'0')*10+(X[1]-'0');
				else x=X[0]-'0';
				if(Y[0]=='n')y=100;
				else if(strlen(Y)==2)y=(Y[0]-'0')*10+(Y[1]-'0');
				else y=Y[0]-'0';
				if(t[bl-'a']==1)pd=1;
				dl[++dl[0]]=bl-'a';
				if(x<=y){
					bs[++bs[0]]=bs[bs[0]-1];
					if(x!=y&&y==100)sj[++sj[0]]=100*bs[bs[0]],now+=bs[bs[0]];
					else sj[++sj[0]]=1*bs[bs[0]];
				}
				else bs[++bs[0]]=0;
				t[bl-'a']=1;
			}
			else{
				if(pd==1)continue;
				if(dl[0]==0)pd=1;
				else t[dl[dl[0]--]]=0;
				if(sj[0]!=0)if(sj[sj[0]--]==100)now=now-bs[bs[0]]*1;
				if(bs[0]!=0)bs[0]--;
			}
			maxx=max(maxx,now);
		}
		if(pd==1||dl[0]!=0||l%2==1)cout<<"ERR\n";
		else{
			if(maxx==cf)cout<<"Yes\n";
			else cout<<"No\n";
		}
	}
	return 0;
}
这是第六个点的输入
CPP
2
54 O(n^9)
F a 8 n
F b 60 62
F c 20 n
F d 81 n
F e 70 n
F f 78 n
E
E
E
E
E
E
F a 76 n
F b 34 n
F c 16 n
F d 2 n
F e 5 n
F f 87 n
F g 8 n
F h 3 n
F i n 17
E
E
E
E
E
E
E
E
E
F a 90 n
F b 79 n
F c 24 n
F d 58 n
F e 58 n
F f 61 32
F g 5 n
F h 80 n
F i 54 n
F j 5 n
F k 79 97
F l 61 86
E
E
E
E
E
E
E
E
E
E
E
E
42 O(n^4)
F a 38 n
F b 7 n
F c n n
F d 79 n
F e 20 n
F f 99 7
F g 68 n
F h 74 n
F i 24 n
E
E
E
E
E
E
E
E
E
F a 10 n
F b 65 n
F c 45 91
F d n 7
F e 44 n
E
E
E
E
E
F a 75 n
F b 55 n
F c 82 39
F d 59 n
F e 38 n
F f 36 50
F g 40 n
E
E
E
E
E
E
E
这是输出
CPP
No
Yes
希望有大佬给出解释qwq

回复

6 条回复,欢迎继续交流。

正在加载回复...