UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#210726#3785. 恒真Yhlms1001ms1248kbC++111.5kb2024-08-07 10:35:112024-08-07 12:09:39

answer

#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
#define int long long
//fixed << setprecision()
int n;
int lnum;

string cs;
string s;
map<char, bool> is_ex;
map<char, bool> v;

stack<bool> stk;

bool check()
{
	//cout << "*start*" << endl;
	for(int i = 0;i < s.size();i++)
	{
		
		if('a' <= s[i] && s[i] <= 'z')
		{
			stk.push(v[s[i]]);
		}
		else
		{
			bool u = stk.top();stk.pop();
			if(s[i] == '!')
			{
				stk.push((!u));
				continue;
			}
			
			bool v = stk.top();stk.pop();
			if(s[i] == '&')
			{
				stk.push((u & v));
			}
			else if(s[i] == '|')
			{
				stk.push((u | v));
			}
			else if(s[i] == '^')
			{
				stk.push((u ^ v));
			}
			
		}
	}
	//cout << "*end*" << endl;
	return stk.top();
}

void dfs(int pos)
{
	if(pos == lnum)
	{
		/*
		for(int i = 0;i < lnum;i++)
		{
			cout << v['a' + i] << " ";
		}
		cout << endl;
		*/
		bool p = check();
		if(!p)
		{
			cout << "NO" << endl;
			exit(0);
		}
		stk.pop();
		return;
	}
	v[('a' + pos)] = 0;
	dfs(pos + 1);
	v[('a' + pos)] = 1;
	dfs(pos + 1);
}
signed main()
{
	ios::sync_with_stdio(false);
	getline(cin, cs);
	for(int i = 0;i < cs.size();i++)
	{
		if('a' <= cs[i] && cs[i] <= 'z')
		{
			is_ex[cs[i]] = true;
		}
		if(cs[i] != ' ')
			s += cs[i];
	}
	lnum = is_ex.size();
	/*
	for(int i = 0;i < lnum;i++)
	{
		cout << (char)(i + 'a') << " \n"[i == lnum - 1];
	}
	*/
	dfs(0);
	cout << "YES" << endl;
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 30
Accepted

Test #1:

score: 30
Accepted
time: 0ms
memory: 1244kb

input:

a a | a b & |

output:

NO

result:

ok "NO"

Test #2:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a b | a b | & a b | a b | & &

output:

NO

result:

ok "NO"

Test #3:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a b | c d | & e f | g h | & &

output:

NO

result:

ok "NO"

Test #4:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

c d |

output:

NO

result:

ok "NO"

Test #5:

score: 0
Accepted
time: 1ms
memory: 1240kb

input:

a a & b & b a & b b & & | b b | b b | & b b a & | | | b b & a a & & b a | a a | & & b a a | | a a & ...

output:

NO

result:

ok "NO"

Test #6:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

b a b | | b d & c b & & & d d | a | d c & b b & | & & c c & d & d a & d a & & | b & & a c & b b | | ...

output:

NO

result:

ok "NO"

Test #7:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

g d | f a & | h a & a a & | & d a e & e g & & | & b e & a a | & g f & h a & & & h e | f g | | e c & ...

output:

NO

result:

ok "NO"

Test #8:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

c b & a a | | g g h | & | a e | g b & | f f | c c & & & | b c b | f b | | | b e | f | b d & c a & | ...

output:

NO

result:

ok "NO"

Subtask #2:

score: 30
Accepted

Test #9:

score: 30
Accepted
time: 0ms
memory: 1240kb

input:

a a & a ! & a a | a a | & & ! a a a | & a a | a | | a a | a a & | ! | | a ! ! ! ! a a | a ! & ! ! | ...

output:

YES

result:

ok "YES"

Test #10:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

a ! ! a a | a a & & | a a ! | a a & ! & & ! ! a ! ! a & a ! ! a a & a ! | | & a a & a a & | a a | ! ...

output:

NO

result:

ok "NO"

Test #11:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a ! ! a a | a a & & | a a ! | a a & ! & & ! ! a ! ! a & a ! ! a a & a ! | | & a a & a a & | a a | ! ...

output:

NO

result:

ok "NO"

Test #12:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a a a | ! | a & a a a | ! & a | | a a & ! a a & a a | | & ! a a a & | a a | a | & a a | a a | | a ! ...

output:

YES

result:

ok "YES"

Test #13:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a a ! a a | ^ a a | a a | ^ | a a | a ^ a ! a ! | ^ | ! | a a a | ! & a ! a | a a ^ a a ^ & | ^ a ^ ...

output:

NO

result:

ok "NO"

Test #14:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a a a a | a a | | a a | a a | ^ & ! a a | ! a a | a & | a | & & a a & a a ^ & a a | a ! | ^ a a & ! ...

output:

NO

result:

ok "NO"

Test #15:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a a ! a a ^ ^ a ! | | a a | a a | ^ a a | ! | a a | a a | | a a | a | ^ | | a | a a | a a | | a ! a ...

output:

YES

result:

ok "YES"

Subtask #3:

score: 40
Accepted

Test #16:

score: 40
Accepted
time: 0ms
memory: 1240kb

input:

a b | a ! b ! | |

output:

YES

result:

ok "YES"

Test #17:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

a b ! | a ! b | &

output:

NO

result:

ok "NO"

Test #18:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

a b ! | a ! b | |

output:

YES

result:

ok "YES"

Test #19:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

a b | c ! | a ! b | c | | a b ! c | | |

output:

YES

result:

ok "YES"

Test #20:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

c b b | | b b | c c | | | c ! c b | ^ ! ^ b c | b c | | c c | ! ^ b ! | | a a | b a | | b b | ! | ! ...

output:

NO

result:

ok "NO"

Test #21:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

b a | a a | ^ b | b a a & | ! | b ! c a ^ | ! a ^ | c ! ! b b | ! ^ c b | a | b & | b a | ! c c | a ...

output:

NO

result:

ok "NO"

Test #22:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

b ! b | c a c | ! | ! a c | b c | | ! b c a | c a | | | | ^ b c | c ! & a c & c c | | | c a | ! a ! ...

output:

YES

result:

ok "YES"

Test #23:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

d c c | ! c ! c ! | | | ! c a | d ! | c b | a d | | | d c ^ ! c c | ! | | b b | b | b a | ! | b b b ...

output:

NO

result:

ok "NO"

Test #24:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

b ! c ! d d | | d c ^ d d | | | ! d a | ! ! ! | c a c | d ! | ^ ! c a | c d | | a c | d c | ^ | b c ...

output:

NO

result:

ok "NO"

Test #25:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

b ! g ! h d | | d g ^ h d | | | ! d e | ! ! ! | g e c | h ! | ^ ! g e | c d | | e c | h c | ^ | b g ...

output:

NO

result:

ok "NO"

Test #26:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

b ! g ! h d | | d g ^ h d | | | ! d e | ! ! ! | g ! ! d ! ! h c | d ^ ! | | | c ! g e | | ! ! b b g ...

output:

NO

result:

ok "NO"

Test #27:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

a ! b | c | d | a b ! | c | d | | a b | c ! | d | | a b | c | d ! | |

output:

YES

result:

ok "YES"

Test #28:

score: 0
Accepted
time: 0ms
memory: 1240kb

input:

a a ! | b b ! | & c c ! | d d ! | & & e e ! | f f ! | & & g ! g | h ! h | & &

output:

YES

result:

ok "YES"

Extra Test:

score: 0
Extra Test Passed