30分,其余全部超时。求大神看看。
查看原帖
30分,其余全部超时。求大神看看。
155268
anselxu楼主2020/11/11 17:21

实在不知道怎么降低了,求助。

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
string s;
bool a[100001],b[100001];
int main(){
	getline(cin,s);
	int n,q,c,t;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];	
	cin>>q;
	for(int z=1;z<=q;z++){
		cin>>c;
		a[c]=!a[c];
		t=0;
		for(int j=0;j<s.size();j++){
			if(s[j]=='x'){
				int l=0;
				while(s[++j]!=' ')
					l=l*10+s[j]-'0';
				b[++t]=a[l];
				continue;
			}
			else if(s[j]=='!'){
				b[t]=!b[t];
				continue;
			}
			else if(s[j]=='&'){
				b[t-1]=b[t-1]&b[t];
				t--;
				continue;
			}
			else if(s[j]=='|'){
				b[t-1]=b[t-1]|b[t];
				t--;
				continue;
			}
		}
		cout<<b[1]<<endl;
		a[c]=!a[c];
	}

	return 0;
} 

2020/11/11 17:21
加载中...