ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214842 | #2642. color | a_sad_soul | 0 | 1241ms | 19624kb | C++11 | 1.4kb | 2024-11-22 19:02:47 | 2024-11-22 23:11:20 |
answer
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 5e5+10;
int cnt[MAXN];
int a[MAXN];
vector<int>e[MAXN];
int top[MAXN],dep[MAXN],fa[MAXN],siz[MAXN],son[MAXN],id[MAXN],rev[MAXN],dfn;
void dfs1(int u,int f){
dep[u]=dep[f]+1;fa[u]=f;siz[u]=1;
cnt[u]=cnt[f]+a[u];
for(int v:e[u]){
if(v==f)continue;
dfs1(v,u);
if(siz[v]>siz[son[u]])son[u]=v;
}
}
void dfs2(int u){
id[u]=++dfn;rev[dfn]=u;
if(son[fa[u]]==u)top[u]=top[fa[u]];
else top[u]=u;
if(!son[u])return ;
dfs2(son[u]);
for(int v:e[u]){if(v==fa[u]||v==son[u])continue;dfs2(v);}
}
int LCA(int x,int y){
while(top[x]!=top[y]){
if(dep[top[x]]<dep[top[y]])swap(x,y);
x=fa[top[x]];
}
if(dep[x]>dep[y])swap(x,y);
return x;
}
typedef pair<int,int>arr;
arr Check(int x,int y){
int lca=LCA(x,y);
return arr(dep[x]+dep[y]-dep[lca]+1,(cnt[x]+cnt[y]-2*cnt[lca]+a[lca]));
}
int n,m;
char s[MAXN];
int main(){
scanf("%d%d",&n,&m);
scanf("%s",s+1);
for(int i=1;i<=n;++i)a[i]=s[i]=='H';
for(int i=1;i<n;++i){int u,v;scanf("%d%d",&u,&v);e[u].push_back(v),e[v].push_back(u);}
dfs1(1,1),dfs2(1);
while(m--){
int x,y;char ch;cin>>x>>y>>ch;
arr sum=Check(x,y);
if((ch=='H'&&sum.second!=0)||(ch=='G'&&sum.second!=sum.first))putchar('1');
else putchar('0');
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 13072kb
input:
920 900 HHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHGHHGHHHHHHHGGHGHHHGHHGHGHHHHHH...
output:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '001010011110011110101000100001...101010011101001110111011...
Test #2:
score: 0
Wrong Answer
time: 5ms
memory: 13072kb
input:
927 949 HHHHGHGGGHHHHGHGHHHHHGHGGHGGGHHHGGHHHHHHGGGGGGHHHGGHHHHGHHHHGGGHHHGHGHHHHGGGGHHGHHGGHGHGGGGG...
output:
1111011111111111111111111111111011111111111110111111111111111111111111111111111111110111101011111111...
result:
wrong answer 1st lines differ - expected: '111100001111011110110110011011...001100101101011111101111...
Test #3:
score: 0
Wrong Answer
time: 6ms
memory: 13072kb
input:
934 998 HHHHGHHHGHHGGGHGGHGHGHHHGHHGHGGGHHHHHGHHGGHHHHHHGHHHGGHHHHHGGHHHGHHHHHHHGHHGHGHGGHHGHGHHHGGH...
output:
1111111111111111111111011111111111111111111111011111111111111111111111011111101111111111111110111111...
result:
wrong answer 1st lines differ - expected: '110101011111101011010101111111...101110111001110010111110...
Test #4:
score: 0
Wrong Answer
time: 0ms
memory: 13076kb
input:
941 947 HHHHHHHHHHHHHHHGHHHGHHHGHHHHGHHHGHHHHHHHHGHHHHHHHHHGHHHHHGHHHHHGHHGHHHHGHGGHHGHHHHHHHHHHGGHH...
output:
1111111111111111111111111111111111110111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '111111101101011000110101010111...010110001111011001100000...
Test #5:
score: 0
Wrong Answer
time: 273ms
memory: 19332kb
input:
92189 98896 HHHHHHHHHGHHHHGGGHGHHHHHHGHHHHHGHHHHHHHHHGHGHHHGHHHHHHGGHHHGHGGHHHHHHHHHGHHHHHHGHGHGHHHG...
output:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '111011111111111111111111111111...111111111111111111111111...
Test #6:
score: 0
Wrong Answer
time: 194ms
memory: 19572kb
input:
95803 95747 HHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHGHHGHGHHHHGHGHHHHHHGGHHHHHHHHHHHHGHHHGHHHHHHHHHGHGGHHHHH...
output:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '101101110111111111111111110111...111110110111111011111111...
Test #7:
score: 0
Wrong Answer
time: 176ms
memory: 19352kb
input:
92610 90996 HHGGGHHGHGGGHGHGHGGGGGGHGGGHGGHGHGHGGHHHHHGHGGHGHGGGGHGGGHGGHHGHHHGGHGHGGHGGGHGGGGGGGGGG...
output:
1111111111111111111011111111111111111110111111111111101111111111011111111111111101111111111111111111...
result:
wrong answer 1st lines differ - expected: '111111111111111111101111111111...111111001111111111111111...
Test #8:
score: 0
Wrong Answer
time: 214ms
memory: 19604kb
input:
96224 91494 HHHHHHHHGGHHGHHHHHHHHHHHHHGHHHGHHHHHHHHHHHHHHHHHGGHHHHHHGHHHHHHHHHHHHHHHHHGHGGGHGHGHHHHH...
output:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '111101011011110011111111111101...110101101111111111111110...
Test #9:
score: 0
Wrong Answer
time: 162ms
memory: 19384kb
input:
93031 96743 HHHHHHHHHGHHHHHHHHHHHHHHHHHGGHHHHGHHHGHHHHHHHHHGHHHHHHHHHHHHHHGGHHHHHGGHGHHHGHHHGHHHHHHG...
output:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '010001111110111101111111011100...111111110111001111110101...
Test #10:
score: 0
Wrong Answer
time: 211ms
memory: 19624kb
input:
96645 93594 HHHHHHHHHGHGHHHHHHHGHHHHGGGHHHHHHHHHHHHHHHHHHGHHHHHGHGHHHHHGHGHHHHHGHHHHGHHHHGGHHGHHHHGH...
output:
1111111111111110111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
wrong answer 1st lines differ - expected: '010100011011111001111111111111...111001111111111111011001...