QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#861381#9980. Boolean Function Reconstructionucup-team191#WA 370ms4096kbC++231.4kb2025-01-18 17:12:512025-01-18 17:13:13

Judging History

你现在查看的是最新测评结果

  • [2025-01-18 17:13:13]
  • 评测
  • 测评结果:WA
  • 用时:370ms
  • 内存:4096kb
  • [2025-01-18 17:12:51]
  • 提交

answer

#include <bits/stdc++.h>
#define X first
#define Y second
#define PB push_back
#define x first
#define y second
#define pb push_back
#define all(a) begin(a),end(a)

using namespace std;

typedef long long ll;
typedef vector<int> vi;
using pii=pair<int,int>;

const int N = 1e5 + 500;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
const char en='\n';
const ll LLINF=1ll<<60;

string f(string s,int off)
{
	if (s.size()==2)
	{
		if (s=="00") return "F";
		if (s=="01") return string(1,'a'+off);
		if (s=="11") return "T";
		assert(0);
	}
	int cl=s.size();
	string re=string(1,'a'+off);
	if (s.substr(cl/2)==s.substr(0,cl/2)) return f(s.substr(cl/2),off-1);
	if (s.substr(cl/2)==string(cl/2,'0')) return "F";
	if (s.substr(0,cl/2)==string(cl/2,'1')) return "T";
	if (s.substr(cl/2)!=string(cl/2,'1')) re="("+re+"&"+f(s.substr(cl/2),off-1)+")";
	if (s.substr(0,cl/2)!=string(cl/2,'0')) re="("+re+"|"+f(s.substr(0,cl/2),off-1)+")";
	return re;
}

int t,n;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>t;
	while (t--)
	{
		cin>>n;
		string s;
		cin>>s;
		bool ok=1;
		for (int b=0;b<n;++b) for (int i=0;i<(1<<n);++i) if ((i>>b)&1)
		{
			if (s[i^(1<<b)]=='1' && s[i]=='0') ok=0;
		}
		//cout<<n<<' '<<s<<endl;
		if (!ok)
		{
			cout<<"No\n";
			//cout<<flush;
			continue;
		}
		cout<<"Yes\n";
		//cout<<flush;
		cout<<f(s,n-1)<<en;
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3712kb

input:

7
2
0001
2
0111
2
1111
3
00010111
1
10
2
0101
5
00000000000000000000000000000001

output:

Yes
(b&a)
Yes
(b|a)
Yes
T
Yes
((c&(b|a))|(b&a))
No
Yes
a
Yes
(e&(d&(c&(b&a))))

result:

ok 7 lines, tightest: 4 out of 14 (7 test cases)

Test #2:

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

input:

4
1
00
1
10
1
01
1
11

output:

Yes
F
No
Yes
a
Yes
T

result:

ok 4 lines, tightest: 0 out of 11 (4 test cases)

Test #3:

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

input:

16
2
0000
2
1000
2
0100
2
1100
2
0010
2
1010
2
0110
2
1110
2
0001
2
1001
2
0101
2
1101
2
0011
2
1011
2
0111
2
1111

output:

Yes
F
No
No
No
No
No
No
No
Yes
(b&a)
No
Yes
a
No
Yes
b
No
Yes
(b|a)
Yes
T

result:

ok 16 lines, tightest: 1 out of 12 (16 test cases)

Test #4:

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

input:

256
3
00000000
3
10000000
3
01000000
3
11000000
3
00100000
3
10100000
3
01100000
3
11100000
3
00010000
3
10010000
3
01010000
3
11010000
3
00110000
3
10110000
3
01110000
3
11110000
3
00001000
3
10001000
3
01001000
3
11001000
3
00101000
3
10101000
3
01101000
3
11101000
3
00011000
3
10011000
3
01011000...

output:

Yes
F
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
...

result:

ok 256 lines, tightest: 4 out of 14 (256 test cases)

Test #5:

score: 0
Accepted
time: 15ms
memory: 3584kb

input:

65536
4
0000000000000000
4
1000000000000000
4
0100000000000000
4
1100000000000000
4
0010000000000000
4
1010000000000000
4
0110000000000000
4
1110000000000000
4
0001000000000000
4
1001000000000000
4
0101000000000000
4
1101000000000000
4
0011000000000000
4
1011000000000000
4
0111000000000000
4
1111000...

output:

Yes
F
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
...

result:

ok 65536 lines, tightest: 9 out of 18 (65536 test cases)

Test #6:

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

input:

168
4
0000000000000000
4
0000000000000001
4
0000000000000011
4
0000000000000101
4
0000000000000111
4
0000000000001111
4
0000000000010001
4
0000000000010011
4
0000000000010101
4
0000000000010111
4
0000000000011111
4
0000000000110011
4
0000000000110111
4
0000000000111111
4
0000000001010101
4
000000000...

output:

Yes
F
Yes
(d&(c&(b&a)))
Yes
(d&(c&b))
Yes
(d&(c&a))
Yes
(d&(c&(b|a)))
Yes
(d&c)
Yes
(d&(b&a))
Yes
(d&((c&b)|(b&a)))
Yes
(d&((c&a)|(b&a)))
Yes
(d&((c&(b|a))|(b&a)))
Yes
(d&(c|(b&a)))
Yes
(d&b)
Yes
(d&((c&(b|a))|b))
Yes
(d&(c|b))
Yes
(d&a)
Yes
(d&((c&(b|a))|a))
Yes
(d&(c|a))
Yes
(d&(b|a))
Yes
(d&(c|(b...

result:

ok 168 lines, tightest: 9 out of 18 (168 test cases)

Test #7:

score: 0
Accepted
time: 12ms
memory: 3712kb

input:

7581
5
00000000000000000000000000000000
5
00000000000000000000000000000001
5
00000000000000000000000000000011
5
00000000000000000000000000000101
5
00000000000000000000000000000111
5
00000000000000000000000000001111
5
00000000000000000000000000010001
5
00000000000000000000000000010011
5
0000000000000...

output:

Yes
F
Yes
(e&(d&(c&(b&a))))
Yes
(e&(d&(c&b)))
Yes
(e&(d&(c&a)))
Yes
(e&(d&(c&(b|a))))
Yes
(e&(d&c))
Yes
(e&(d&(b&a)))
Yes
(e&(d&((c&b)|(b&a))))
Yes
(e&(d&((c&a)|(b&a))))
Yes
(e&(d&((c&(b|a))|(b&a))))
Yes
(e&(d&(c|(b&a))))
Yes
(e&(d&b))
Yes
(e&(d&((c&(b|a))|b)))
Yes
(e&(d&(c|b)))
Yes
(e&(d&a))
Yes
(e...

result:

ok 7581 lines, tightest: 20 out of 26 (7581 test cases)

Test #8:

score: 0
Accepted
time: 3ms
memory: 3968kb

input:

14
1
01
2
0111
3
00010111
4
0001011101111111
5
00000001000101110001011101111111
6
0000000100010111000101110111111100010111011111110111111111111111
7
00000000000000010000000100010111000000010001011100010111011111110000000100010111000101110111111100010111011111110111111111111111
8
00000000000000010000...

output:

Yes
a
Yes
(b|a)
Yes
((c&(b|a))|(b&a))
Yes
((d&(c|(b|a)))|((c&(b|a))|(b&a)))
Yes
((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a))))
Yes
((f&((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))|((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))
Yes
((g&...

result:

ok 14 lines, tightest: 68 out of 74 (14 test cases)

Test #9:

score: 0
Accepted
time: 3ms
memory: 3968kb

input:

14
1
01
2
0001
3
00010111
4
0000000100010111
5
00000001000101110001011101111111
6
0000000000000001000000010001011100000001000101110001011101111111
7
00000000000000010000000100010111000000010001011100010111011111110000000100010111000101110111111100010111011111110111111111111111
8
00000000000000000000...

output:

Yes
a
Yes
(b&a)
Yes
((c&(b|a))|(b&a))
Yes
((d&((c&(b|a))|(b&a)))|(c&(b&a)))
Yes
((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a))))
Yes
((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))))
Yes
((g&...

result:

ok 14 lines, tightest: 68 out of 74 (14 test cases)

Test #10:

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

input:

14
1
00
2
0001
3
00000001
4
0000000100010111
5
00000000000000010000000100010111
6
0000000000000001000000010001011100000001000101110001011101111111
7
00000000000000000000000000000001000000000000000100000001000101110000000000000001000000010001011100000001000101110001011101111111
8
00000000000000000000...

output:

Yes
F
Yes
(b&a)
Yes
(c&(b&a))
Yes
((d&((c&(b|a))|(b&a)))|(c&(b&a)))
Yes
((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a))))
Yes
((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))))
Yes
((g&((f&((e&((d&(c|(b|a)))|((c&(...

result:

ok 14 lines, tightest: 33 out of 42 (14 test cases)

Test #11:

score: 0
Accepted
time: 2ms
memory: 3968kb

input:

14
1
00
2
0000
3
00000001
4
0000000000000001
5
00000000000000010000000100010111
6
0000000000000000000000000000000100000000000000010000000100010111
7
00000000000000000000000000000001000000000000000100000001000101110000000000000001000000010001011100000001000101110001011101111111
8
00000000000000000000...

output:

Yes
F
Yes
F
Yes
(c&(b&a))
Yes
(d&(c&(b&a)))
Yes
((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a))))
Yes
((f&((e&((d&((c&(b|a))|(b&a)))|(c&(b&a))))|(d&(c&(b&a)))))|(e&(d&(c&(b&a)))))
Yes
((g&((f&((e&((d&(c|(b|a)))|((c&(b|a))|(b&a))))|((d&((c&(b|a))|(b&a)))|(c&(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c...

result:

ok 14 lines, tightest: 0 out of 11 (14 test cases)

Test #12:

score: 0
Accepted
time: 3ms
memory: 3840kb

input:

1
15
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000...

output:

Yes
((o&((n&((m&((l&((k&((j&((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))))|((i&((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b...

result:

ok 1 lines, tightest: 12868 out of 16394 (1 test case)

Test #13:

score: 0
Accepted
time: 2ms
memory: 4096kb

input:

1
15
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000010000000100010111000000000000000000000000000000000000000...

output:

Yes
((o&((n&((m&((l&((k&((j&(i|(h|(g|(f|(e|(d|(c|(b|a)))))))))|((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))))))|((j&((i&(h|(g|(f|(e|(d|(c|(b|a))))))))|((h&(g|(f|(e|(d|(c|(b|...

result:

ok 1 lines, tightest: 11438 out of 16394 (1 test case)

Test #14:

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

input:

1
15
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

Yes
((o&((n&((m&((l&((k&((j&((i&((h&(g|(f|(e|(d|(c|(b|a)))))))|((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))))|((h&((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))|((g&((f&(e|(d|(c|(...

result:

ok 1 lines, tightest: 11438 out of 16394 (1 test case)

Test #15:

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

input:

1
15
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

Yes
((o&((n&((m&((l&((k&((j&((i&((h&((g&(f|(e|(d|(c|(b|a))))))|((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))))|((g&((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a))))))|((f&((e&(d|(c|(b|a))))|((d&(c|(b|a)))|((c&(b|a))|(b&a)))))|((e&((d&(c|(b|a...

result:

ok 1 lines, tightest: 8006 out of 16394 (1 test case)

Test #16:

score: 0
Accepted
time: 189ms
memory: 3712kb

input:

65536
6
0000001101111111000111111111111101111111111111111111111111111111
6
0000000000000000000100110011011100000000000000000001001100111111
6
0101010101110111011101111111111101110111111111111111111111111111
6
0000001100000011000000110001011100011111001111110011111100111111
6
000000010001011100000001...

output:

Yes
((f&(e|(d|(c|(b|a)))))|((e&(d|(c|(b&a))))|((d&(c|(b|a)))|(c&b))))
Yes
((f&(e&((d&(c|b))|((c&b)|(b&a)))))|(e&((d&((c&(b|a))|b))|((c&b)|(b&a)))))
Yes
((f&(e|(d|(b|a))))|((e&(d|(b|a)))|((d&(b|a))|a)))
Yes
((f&((e&(c|b))|((d&(c|b))|(c|(b&a)))))|((e&((d&((c&(b|a))|(b&a)))|(c&b)))|(c&b)))
Yes
((f&((d&...

result:

ok 65536 lines, tightest: 41 out of 42 (65536 test cases)

Test #17:

score: -100
Wrong Answer
time: 370ms
memory: 3712kb

input:

65536
7
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
7
00000001000100010001000101110111000100010111011101110111011111110001000101110111011101110111111100010001011101110111011111111111
7
000000010001001100000001001101...

output:

Yes
(g&(f&(e&(d&(c&(b&a))))))
Yes
((g&((f&((e&(d|(b|a)))|((d&(b|a))|(b&a))))|((e&((d&(c|(b|a)))|(b|a)))|((d&(b|a))|(b&a)))))|((f&((e&((d&(c|(b|a)))|(b|a)))|((d&(b|a))|(b&a))))|((e&((d&(b|a))|(b&a)))|((d&(b&a))|(c&(b&a))))))
Yes
((g&((f&((e&(d|((c&(b|a))|b)))|((d&(c|(b|a)))|((c&b)|(b&a)))))|((e&((d&(...

result:

wrong answer 75 operations, you can't use more than 74 operations (test case 3454)