0分,求助
查看原帖
0分,求助
457431
Li_wenjie楼主2021/9/5 21:32
#include<bits/stdc++.h>
using namespace std;
int n,q;
string s;
bool a[100001],ansb[1000001];
bool yunsuan()
{
	stack<bool>ans;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]>='0'&&s[i]<='9')
		{
			ans.push(a[s[i]-'0']);	
		}
		else if(s[i]=='&')
		{
			int x1,y1;
			x1=ans.top();
			ans.pop();
			y1=ans.top();
			ans.pop();
			ans.push(x1&&y1);
		}
		else if(s[i]=='|')
		{
			int x1,y1;
			x1=ans.top();
			ans.pop();
			y1=ans.top();
			ans.pop();
			ans.push(x1||y1);
		}
		else if(s[i]=='!')
		{
			int x1;
			x1=ans.top();
			ans.pop();
			ans.push(!x1);
		}
	}
	return ans.top();
}
int main()
{
	int d=0;

	getline(cin,s);
	cin>>n;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	cin>>q;
	for(int i=1;i<=q;i++)
	{
		int k;
		cin>>k;
		a[k]=!a[k];
		ansb[++d]=yunsuan();
		a[k]=!a[k];
	}
	for(int i=1;i<=d;i++)
	{
		cout<<ansb[i]<<endl;
	}
}
2021/9/5 21:32
加载中...