91分有一个样例过不了求大佬帮忙
  • 板块学术版
  • 楼主wangczz
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/8/2 17:51
  • 上次更新2025/8/2 19:32:32
查看原帖
91分有一个样例过不了求大佬帮忙
765712
wangczz楼主2025/8/2 17:51

下面是样例和代码,本来应该输出Yes的但是我的程序结果是No 题目传送门

//样例
1
74 O(n^11)
F a 31 n
F b 31 n
F c 70 32
F d 35 92
F e 56 n
F f 64 n
F g 35 n
F h 25 n
F i 63 n
F j 2 n
F k 68 70
E
E
E
E
E
E
E
E
E
E
E
F a 53 59
F b 84 85
F c 17 n
F d 47 n
F e 20 57
F f 90 94
F g 90 98
F h 46 n
F i 44 n
F j 24 n
F k 9 n
E
E
E
E
E
E
E
E
E
E
E
F a 41 n
F b 2 48
F c 32 n
F d 43 n
F e 68 n
F f 53 n
F g 18 86
F h 20 n
F i 56 n
F j 87 n
F k 51 n
F l 90 94
F m 82 n
F o 55 n
F p 70 87
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
#include<bits/stdc++.h>
using namespace std;
map<char,int> mp;
stack<char> T;
int ner[100010],len;
int num(string s){
	int sum=1,ans=0;
	for(int i=s.size()-1;i>=0;i--){
		if('0'<=s[i]&&s[i]<='9'){
			ans+=(s[i]-'0')*sum;
			sum*=10;
		}
		else if((i+1)!=s.size()) break;
	}
	return ans;
}
int main(){
	cin.tie(nullptr) -> ios::sync_with_stdio(false);
    int t; cin>>t; 
    while(t--){
        mp.clear(); while(!T.empty()) T.pop();
        memset(ner,0,sizeof(ner)); len=0;
        int p,sum1=0,sum2=0,sum3=0,mx=0,flg=0;
        string s; 
        cin>>p>>s;
        while(p--){
            char F,a; string b,c;
            cin>>F;
            if(F=='F'){
                cin>>a>>b>>c;
                if(mp[a]!=1){ mp[a]=1; T.push(a);} 
                else{ flg=1;}
                sum1++;
                if( (b=="n")&&('0'<=c[0]&&c[0]<='9')||('0'<=b[0]&&b[0]<='9')&&('0'<=c[0]&&c[0]<='9')&&num(b)>num(c))
					{ner[++len]=3; sum3++;} 
                
                if( ('0'<=b[0]&&b[0]<='9')&&('0'<=c[0]&&c[0]<='9') || b==c) 
                    if(sum3==0){ ner[++len]=1;}
                    else{
						sum3++;
						ner[++len]=3;
					}
                    
                if( ('0'<=b[0]&&b[0]<='9')&&(c=="n") ){
                    if(sum3==0){
                    	ner[++len]=2;
                        sum2++;
                        mx=max(mx,sum2);
                    }
                    else{
						sum3++;
						ner[++len]=3;
					}
                }
            } 
            else if(F=='E'){
                sum1--;
                if(!T.empty()){
                	char cn=T.top();
	                mp[cn]=0;
	                T.pop();
				}
                if(ner[len]==2) sum2--;
                if(ner[len]==3) sum3--;
                len--;
            }
        }
        if(flg==1||sum1!=0) cout<<"ERR\n";
        else{
            if(mx==0&&s.size()==4) cout<<"Yes\n";
            else if(mx==0) cout<<"No\n";
            if(mx!=0&&s.size()>4){
                if(num(s)==mx) cout<<"Yes\n";
                else cout<<"No\n";
            }
            else if(mx!=0) cout<<"No\n";
        }
//        cout<<mx<<'\n';
    }
} 
2025/8/2 17:51
加载中...