五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

P8815-CSP-J-2022-3-LogicExpression邏輯表達(dá)式

2023-08-07 11:17 作者:信奧賽USACO鄭老師  | 我要投稿

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int MAXV=1e6;

struct node{

? ? char v;

? ? int l,r;

};

vector<node> g(MAXV);

int build_tree(string sl){

? ? int last=1;

? ? stack<int> st;

? ? for(int i=0;i<sl.size();i++){

? ? ? ? if(sl[i]=='0'||sl[i]=='1'){

? ? ? ? ? ? g[last].v=sl[i];

? ? ? ? ? ? st.push(last);

? ? ? ? ? ? last++;

? ? ? ? }

? ? ? ? if(sl[i]=='&'||sl[i]=='|'){

? ? ? ? ? ? int o2=st.top();

? ? ? ? ? ? st.pop();

? ? ? ? ? ? int o1=st.top();

? ? ? ? ? ? st.pop();

? ? ? ? ? ? g[last].l=o1;

? ? ? ? ? ? g[last].r=o2;

? ? ? ? ? ? g[last].v=sl[i];

? ? ? ? ? ? st.push(last);

? ? ? ? ? ? last++;

? ? ? ? }

? ? }

? ? return st.top();

}

int dfs(int root, int& a, int& b){

? ? if(g[root].l==0&&g[root].r==0){//leaf

? ? ? ? return g[root].v-'0';

? ? }

? ? int left=dfs(g[root].l,a,b);

? ? int ret=-1;

? ? if(g[root].v=='&'){

? ? ? ? if(left==0){

? ? ? ? ? ? a++;

? ? ? ? ? ? ret=0;

? ? ? ? }else{

? ? ? ? ? ? ret=dfs(g[root].r,a,b);

? ? ? ? }

? ? }else{

? ? ? ? if(g[root].v=='|'){

? ? ? ? ? ? if(left==1){

? ? ? ? ? ? ? ? b++;

? ? ? ? ? ? ? ? ret=1;

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ret=dfs(g[root].r,a,b);

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return ret;

}

string m2l(string s){

? ? string res;

? ? stack<char> st;

? ? for(int i=0;i<s.size();i++){

? ? ? ? char c=s[i];

? ? ? ? switch(c){

? ? ? ? ? ? case '0':

? ? ? ? ? ? case '1':

? ? ? ? ? ? ? ? res+=c;

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case '(':

? ? ? ? ? ? ? ? st.push(c);

? ? ? ? ? ? ? ? break;? ??

? ? ? ? ? ? case ')':

? ? ? ? ? ? ? ? while(st.top()!='('){

? ? ? ? ? ? ? ? ? ? res+=st.top();

? ? ? ? ? ? ? ? ? ? st.pop();

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? st.pop();

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case '&':

? ? ? ? ? ? ? ? while(st.size()>0&&st.top()!='|'&&st.top()!='('){

? ? ? ? ? ? ? ? ? ? res+=st.top();

? ? ? ? ? ? ? ? ? ? st.pop();

? ? ? ? ? ? ? ? }? ??

? ? ? ? ? ? ? ? st.push('&');

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? case '|':

? ? ? ? ? ? ? ? while(st.size()>0&&st.top()!='('){

? ? ? ? ? ? ? ? ? ? res+=st.top();

? ? ? ? ? ? ? ? ? ? st.pop();

? ? ? ? ? ? ? ? }? ??

? ? ? ? ? ? ? ? st.push('|');

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? default:

? ? ? ? ? ? ? ? cout<<"error1\n";

? ? ? ? }

? ? }

? ? while(st.size()>0){

? ? ? ? res+=st.top();

? ? ? ? st.pop();

? ? }

? ? return res;? ? ? ? ? ? ? ? ? ??

}

int main(){

? ? string s,sl;

? ? cin>>s;

? ? sl=m2l(s);

? ? int root=build_tree(sl);

? ? int a=0,b=0;

? ? cout<<dfs(root,a,b)<<endl;

? ? cout<<a<<" "<<b<<endl;

? ? return 0;

}


P8815-CSP-J-2022-3-LogicExpression邏輯表達(dá)式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鹤壁市| 巴青县| 洛阳市| 霍州市| 水富县| 白朗县| 毕节市| 德庆县| 清新县| 永福县| 荣成市| 长治市| 和政县| 旺苍县| 荣成市| 古浪县| 阿鲁科尔沁旗| 盐山县| 和平区| 嘉义县| 吉木萨尔县| 加查县| 驻马店市| 蛟河市| 柏乡县| 镇康县| 永川市| 佳木斯市| 武夷山市| 民县| 鸡泽县| 盐亭县| 本溪市| 梓潼县| 宣威市| 丰镇市| 拜城县| 昆山市| 吉木萨尔县| 黄骅市| 石首市|