我又来求助了QAQ
  • 板块灌水区
  • 楼主0720wangyuxiang
  • 当前回复3
  • 已保存回复4
  • 发布时间2024/8/20 11:18
  • 上次更新2024/8/20 13:54:52
查看原帖
我又来求助了QAQ
1243205
0720wangyuxiang楼主2024/8/20 11:18

表达式

只得了5分

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=100010;
string s;
int n,a[N],ans[N],m,q;
stack<int> b;
int main(){
	getline(cin,s);
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	int sum=0;
	for(int i=0;i<s.size();i++){
		if(s[i]=='x')continue;
        if('0'<=s[i]&&s[i]<='9'){
			sum*=10;
			sum+=s[i]-'0';
		}
		else if(s[i]==' '){
			if(sum!=0){
				b.push(a[sum]);
				sum=0;
				f=true;
			}
		}
		else if(s[i]=='!'){
			int A=b.top();
			b.pop();
			A=!A;
			ans[++m]=A;
			b.push(A);
		}
		else if(s[i]=='|'){
			int A=b.top();
			b.pop();
			int B=b.top();
			b.pop();
			A=A|B;
			ans[++m]=A;
			b.push(A);		
		}
		else if(s[i]=='&'){
			int A=b.top();
			b.pop();
			int B=b.top();
			b.pop();
			A=A&B;
			ans[++m]=A;
			b.push(A);		
		}
	}
	cin>>q;
	for(int i=1,x;i<=q;i++){
		cin>>x;
		cout<<!ans[x]<<'\n';
	}
	return 0;
} 
2024/8/20 11:18
加载中...