QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#291338#4896. Alice、Bob 与 DFSKevin53075 76ms19028kbC++203.1kb2023-12-26 12:33:042023-12-26 12:33:04

Judging History

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

  • [2023-12-26 12:33:04]
  • 评测
  • 测评结果:5
  • 用时:76ms
  • 内存:19028kb
  • [2023-12-26 12:33:04]
  • 提交

answer

//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define ll long long
#define ull unsigned ll
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define pii pair<int,int>
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
#define longer __int128_t
void die(string S){puts(S.c_str());exit(0);}
int c[200200];
vector<int> G[200200];
int n;
ll g0[200200],g1[200200];
namespace bit
{
	int bit[200200];
	vector<pii> memo;
	void update(int p,int v,bool ign=0)
	{
		p++;
		if(!ign)
			memo.pb(p,v);
		while(p<200200)
		{
			bit[p]+=v;
			p+=(p&(-p));
		}
	}
	int query(int p)
	{
		p++;
		int ans=0;
		while(p)
		{
			ans+=bit[p];
			p-=(p&(-p));
		}
		return ans;
	}
	void clear()
	{
		for(auto pr:memo)
			update(pr.first,-pr.second,1);
		memo.clear();
	}
}
void get()
{
	for(int i=n;i>=1;i--)
		if(c[i])
		{
			rev(G[i]);
			{
				bit::update(0,1);
				for(auto j:G[i]) if(c[j])
				{
					int cur=g0[j];
					int l=1,r=200001;
					while(l<r)
					{
						int mid=(l+r)/2;
						if((mid+1)-bit::query(mid)>=cur)
							r=mid;
						else
							l=mid+1;
					}
					bit::update(l,1);
				}
				else
				{
					int cur=g0[j];
					if(bit::query(cur)==bit::query(cur-1))
						bit::update(cur,1);
				}
				int l=1,r=200001;
				while(l<r)
				{
					int mid=(l+r)/2;
					if((mid+1)-bit::query(mid))
						r=mid;
					else
						l=mid+1;
				}
				g0[i]=l;
				bit::clear();
			}
			{
				for(auto j:G[i]) if(c[j])
				{
					int cur=(bit::query(0)?g0[j]:g1[j]+1);
					int l=1,r=200001;
					while(l<r)
					{
						int mid=(l+r)/2;
						if((mid+1)-bit::query(mid)>=cur)
							r=mid;
						else
							l=mid+1;
					}
					bit::update(l,1);
				}
				else
				{
					int cur=(bit::query(0)?g0[j]:g1[j]);
					if(bit::query(cur)==bit::query(cur-1))
						bit::update(cur,1);
				}
				int l=1,r=200001;
				while(l<r)
				{
					int mid=(l+r)/2;
					if((mid+1)-bit::query(mid))
						r=mid;
					else
						l=mid+1;
				}
				g0[i]=l;
				bit::clear();
			}
		}
		else
		{
			int cur0=0,cur1=1;
			rev(G[i]);
			for(auto j:G[i])
			{
				cur0=(cur0?g1[j]:g0[j]);
				cur1=(cur1?g1[j]:g0[j]);
			}
			g0[i]=cur0^1;
			g1[i]=cur1^1;
		}
}
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>c[i];
	for(int i=1;i<=n;i++)
	{
		int m;
		cin>>m;
		if(!m) c[i]=1;
		while(m--)
		{
			int x;
			cin>>x;
			G[i].pb(x);
		}
	}
	get();
//	for(int i=1;i<=n;i++)
//		cerr<<g0[i]<<" "<<g1[i]<<endl;
	int k;
	cin>>k;
	int ans=0;
	while(k--)
	{
		int x;
		cin>>x;
		ans^=g0[x];
	}
	if(ans)
		cout<<"Alice";
	else
		cout<<"Bob";
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 0ms
memory: 11920kb

input:

1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Alice

result:

ok "Alice"

Test #2:

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

input:

1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #3:

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

input:

1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Alice

result:

ok "Alice"

Test #4:

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

input:

10
0 0 0 0 0 0 0 0 0 0
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
0
1
1

output:

Bob

result:

ok "Bob"

Test #5:

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

input:

11
0 0 0 0 0 0 0 0 0 0 0
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
0
0
2
1 11

output:

Alice

result:

ok "Alice"

Test #6:

score: 0
Accepted
time: 18ms
memory: 19028kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #7:

score: 0
Accepted
time: 26ms
memory: 18520kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #8:

score: 0
Accepted
time: 76ms
memory: 16972kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Alice

result:

ok "Alice"

Test #9:

score: 0
Accepted
time: 76ms
memory: 16896kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #10:

score: 0
Accepted
time: 67ms
memory: 16908kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #11:

score: 0
Accepted
time: 71ms
memory: 16260kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #12:

score: 0
Accepted
time: 68ms
memory: 16680kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #13:

score: 0
Accepted
time: 74ms
memory: 15932kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Alice

result:

ok "Alice"

Test #14:

score: 0
Accepted
time: 55ms
memory: 16088kb

input:

200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

Bob

result:

ok "Bob"

Test #15:

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

input:

1
0
0
1
1

output:

Alice

result:

ok "Alice"

Test #16:

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

input:

3
0 0 0
1 2
1 3
0
1
1

output:

Alice

result:

ok "Alice"

Test #17:

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

input:

4
0 0 0 0
1 2
1 3
0
0
2
1 4

output:

Bob

result:

ok "Bob"

Subtask #2:

score: 0
Wrong Answer

Test #18:

score: 15
Accepted
time: 1ms
memory: 10756kb

input:

7
0 0 1 1 0 1 1
1 2
2 3 4
0
2 5 6
0
1 7
0
1
1

output:

Bob

result:

ok "Bob"

Test #19:

score: -15
Wrong Answer
time: 1ms
memory: 10512kb

input:

6
0 1 0 0 1 0
2 2 6
3 3 4 5
0
0
0
0
1
1

output:

Alice

result:

wrong answer 1st words differ - expected: 'Bob', found: 'Alice'

Subtask #3:

score: 0
Wrong Answer

Test #55:

score: 15
Accepted
time: 2ms
memory: 11916kb

input:

7
0 0 1 1 0 1 1
1 2
2 3 4
0
2 5 6
0
1 7
0
1
1

output:

Bob

result:

ok "Bob"

Test #56:

score: -15
Wrong Answer
time: 1ms
memory: 11804kb

input:

6
0 1 0 0 1 0
2 2 6
3 3 4 5
0
0
0
0
1
1

output:

Alice

result:

wrong answer 1st words differ - expected: 'Bob', found: 'Alice'

Subtask #4:

score: 0
Wrong Answer

Test #103:

score: 20
Accepted
time: 2ms
memory: 10800kb

input:

10
1 1 1 1 1 1 1 1 1 1
1 2
4 3 5 7 8
1 4
0
1 6
0
0
1 9
1 10
0
1
1

output:

Alice

result:

ok "Alice"

Test #104:

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

input:

10
1 1 1 1 1 1 1 1 1 1
4 2 3 4 10
0
0
1 5
1 6
2 7 8
0
1 9
0
0
1
1

output:

Alice

result:

ok "Alice"

Test #105:

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

input:

10
1 1 1 1 1 1 1 1 1 1
2 2 7
1 3
2 4 6
1 5
0
0
0
1 9
0
0
10
8 10 10 8 10 8 10 10 1 8

output:

Alice

result:

ok "Alice"

Test #106:

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

input:

10
1 1 1 1 1 1 1 1 1 1
2 2 3
0
0
1 5
0
2 7 9
1 8
0
0
0
10
6 6 4 1 1 4 10 10 10 6

output:

Alice

result:

ok "Alice"

Test #107:

score: -20
Wrong Answer
time: 2ms
memory: 11000kb

input:

10
1 1 1 1 1 1 1 1 1 1
1 2
0
2 4 5
0
1 6
0
0
0
0
0
10
10 10 1 9 8 9 10 7 7 3

output:

Bob

result:

wrong answer 1st words differ - expected: 'Alice', found: 'Bob'

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%