QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#573029#8948. 报复社会peter0 2ms9988kbC++14891b2024-09-18 17:07:142024-09-18 17:07:15

Judging History

This is the latest submission verdict.

  • [2024-09-18 17:07:15]
  • Judged
  • Verdict: 0
  • Time: 2ms
  • Memory: 9988kb
  • [2024-09-18 17:07:14]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

const int maxn=5e5+5;
int a[maxn],n;
struct edge{
	int to,nxt;
}e[maxn<<1];
int head[maxn],len,dp[maxn];

inline void init(){
	for(int i=1;i<=n;i++) head[i]=-1;
	len=0;
}
void add(int u,int v){
	e[++len].to=v;
	e[len].nxt=head[u];
	head[u]=len;
}

void dfs(int u){
	if(head[u]==-1){
		if(a[u]) dp[u]=1;
		else dp[u]=-1;
		return;
	}
	dp[u]=0;
	for(int i=head[u];i!=-1;i=e[i].nxt){
		int v=e[i].to;
		dfs(v);
		dp[u]+=dp[v];
	}
	if(dp[u]>0) dp[u]++;
	else if(dp[u]<0) dp[u]--;
	else dp[u]=(n&1)?1:-1;
}

int main(){
	
	int tp,q;
	
	scanf("%d %d",&tp,&q);
	
	while(q--){
		scanf("%d",&n);
		init();
		for(int i=2;i<=n;i++){
			int x;
			scanf("%d",&x);
			add(x,i);
		}
		for(int i=1;i<=n;i++) scanf("%d",&a[i]);
		dfs(1);
		if(dp[1]>0) puts("no");
		else puts("yes");
	}
	
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 9800kb

input:

1
19
1 2 3 3 2 6 7 7 6 6 6 2 2 2 1 1 1 1
0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0

output:

no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no

result:

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

Subtask #2:

score: 0
Wrong Answer

Test #50:

score: 0
Wrong Answer
time: 0ms
memory: 9920kb

input:

10000
49
1 2 2 1 5 5 5 5 5 5 1 12 12 12 12 12 12 1 19 19 19 19 19 19 19 1 27 27 1 1 31 1 33 33 33 33 33 33 33 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1
50
1 2 2 2 2 2 1 8 8 8 1 12 1 1 15 15 15 15 1 1 21 21 21 21 1 26 1 1 29 29...

output:

no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
yes
yes
yes
yes
no
no
no
no
no
yes
yes
no
no
yes
no
no
yes

result:

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

Subtask #3:

score: 0
Wrong Answer

Test #73:

score: 0
Wrong Answer
time: 2ms
memory: 9988kb

input:

10000
50
1 2 1 4 5 6 5 4 9 4 11 4 1 14 15 16 16 16 15 14 21 21 21 14 14 14 14 14 1 30 30 30 30 30 1 36 37 37 37 36 41 41 41 36 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1
50
1 2 3 4 5 4 7 8 7 4 11 12 11 14 11 16 11 18 11 4 21 4 4 4 3 ...

output:

no
no
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
no
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
yes
no
no
no
no
no
no
no
no

result:

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

Subtask #4:

score: 0
Skipped

Dependency #1:

0%