P7073请大佬帮忙看看
  • 板块题目总版
  • 楼主Zhuan_
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/2 09:00
  • 上次更新2023/11/2 16:39:06
查看原帖
P7073请大佬帮忙看看
963383
Zhuan_楼主2023/10/2 09:00

我的代码:

#include<bits/stdc++.h>
using namespace std;

string s;
vector<int>a;
stack<int>stk;

void f(){
    for(int i=0;i<=s.size();i++){
        if(s[i]=='x'){
            int num=s[i+1]-'0'-1;
            stk.push(a[num]);
        }else if(s[i]=='&'){
    		int x=stk.top();
    		stk.pop();
    		int y=stk.top();
    		stk.pop();
    		stk.push(y&&x);
		}else if(s[i]=='|'){
			int x=stk.top();
    		stk.pop();
    		int y=stk.top();
    		stk.pop();
    		stk.push(y||x);
		}else if(s[i]=='!'){
			int x=stk.top();
    		stk.pop();
    		stk.push(!x);
    	}
	}
	cout<<stk.top()<<endl;
	while(!stk.empty()) stk.pop();	
}

int main(){
//    freopen("P7073_1.in","r",stdin);
//    freopen("P7073_1.out","w",stdout);
    
    int n,qs;
    getline(cin,s);
    cin>>n;
    for(int i=0;i<n;i++){
        int x;
        cin>>x;
        a.push_back(x);
    }
    cin>>qs;
    for(int i=0;i<qs;i++){
        int x;
        cin>>x;
        a[x-1]=!a[x-1];
        f();
        a[x-1]=!a[x-1];
    }
    return 0;
}
2023/10/2 09:00
加载中...