ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214845 | #2642. color | x_add_b | 0 | 233ms | 19320kb | C++11 | 1.8kb | 2024-11-22 19:08:53 | 2024-11-22 23:11:44 |
answer
#include<bits/stdc++.h>
namespace IO
{
template<typename Type>
void read(Type &x){
char ch=getchar();
x=0;bool f=0;
while(ch<'0'||ch>'9')
f|=(ch=='-'),ch=getchar();
while(ch>='0'&&ch<='9')
x=((x<<1)+(x<<3)+(ch^48)),ch=getchar();
x=f?-x:x;
}
}
using namespace std;
#define N 100005
int n,m,u,v,pos,idx1,idx2;
int head[N],dfn[N],seq[N<<1],to[N],st[22][N<<1],ret[N],sum1[N],sum2[N];
char color[N],ans[N];
char op;
struct Edge
{
int u,v,nxt;
}e[N<<1];
void addEdge(int u,int v)
{
e[++pos]={u,v,head[u]};
head[u]=pos;
}
void initdfs(int u,int Father)
{
dfn[u]=++idx1;seq[++idx2]=dfn[u];ret[dfn[u]]=u;
if(!to[u]) to[u]=idx2;
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].v;
if(v==Father) continue ;
sum1[v]=sum1[u]+(color[v]=='H');
sum2[v]=sum2[u]+(color[v]=='G');
initdfs(v,u);
seq[++idx2]=dfn[u];
}
}
void init()
{
for(int i=1;i<=idx2;i++)
st[0][i]=seq[i];
for(int t=1;(1<<t)<=idx2;t++)
for(int i=1;i+(1<<t)<=idx2;i++)
st[t][i]=min(st[t-1][i],st[t-1][i+(1<<(t-1))]);
}
int LCA(int u,int v)
{
int L=to[u],R=to[v];
if(L>R) swap(L,R);
int t=__lg(R-L+1);
return min(st[t][L],st[t][R-(1<<t)+1]);
}
int dist1(int u,int v)
{
return sum1[u]+sum1[v]-2*sum1[LCA(u,v)]+(color[LCA(u,v)]=='H');
}
int dist2(int u,int v)
{
return sum2[u]+sum2[v]-2*sum2[LCA(u,v)]+(color[LCA(u,v)]=='G');
}
int main()
{
IO::read(n);IO::read(m);
scanf("%s",color+1);
for(int i=1;i<n;i++){
IO::read(u);IO::read(v);
addEdge(u,v);
addEdge(v,u);
}
initdfs(1,0);
init();
for(int i=1;i<=m;i++){
IO::read(u);IO::read(v);
// printf("%d\n",LCA(u,v));
scanf("%s",&op);
if(op=='H') ans[i]=(dist1(u,v))?'1':'0';
else ans[i]=(dist2(u,v))?'1':'0';
}
printf("%s",ans+1);
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 1380kb
input:
920 900 HHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHHHGHHGHHHHHHHGGHGHHHGHHGHGHHHHHH...
output:
0010100111101111001000001000010101100010011110110110001100100101111000101111100001111001110100001111...
result:
wrong answer 1st lines differ - expected: '001010011110011110101000100001...101010011101001110111011...
Test #2:
score: 0
Wrong Answer
time: 0ms
memory: 1384kb
input:
927 949 HHHHGHGGGHHHHGHGHHHHHGHGGHGGGHHHGGHHHHHHGGGGGGHHHGGHHHHGHHHHGGGHHHGHGHHHHGGGGHHGHHGGHGHGGGGG...
output:
1111011111111110101101101011111111111101111010110110111111111110111011111111111101111111111011111111...
result:
wrong answer 1st lines differ - expected: '111100001111011110110110011011...001100101101011111101111...
Test #3:
score: 0
Wrong Answer
time: 0ms
memory: 1380kb
input:
934 998 HHHHGHHHGHHGGGHGGHGHGHHHGHHGHGGGHHHHHGHHGGHHHHHHGHHHGGHHHHHGGHHHGHHHHHHHGHHGHGHGGHHGHGHHHGGH...
output:
1101011111111010110101111111110111111101111100110111001101110111111111011111111001111011001010101111...
result:
wrong answer 1st lines differ - expected: '110101011111101011010101111111...101110111001110010111110...
Test #4:
score: 0
Wrong Answer
time: 0ms
memory: 1384kb
input:
941 947 HHHHHHHHHHHHHHHGHHHGHHHGHHHHGHHHGHHHHHHHHGHHHHHHHHHGHHHHHGHHHHHGHHGHHHHGHGGHHGHHHHHHHHHHGGHH...
output:
1111111011010110001111010101110101111001000101101101111101111001101111111111111011010101001111101111...
result:
wrong answer 1st lines differ - expected: '111111101101011000110101010111...010110001111011001100000...
Test #5:
score: 0
Wrong Answer
time: 42ms
memory: 18452kb
input:
92189 98896 HHHHHHHHHGHHHHGGGHGHHHHHHGHHHHHGHHHHHHHHHGHGHHHGHHHHHHGGHHHGHGGHHHHHHHHHGHHHHHHGHGHGHHHG...
output:
1110111111111110111111111111111111111011110111111111111111110111111101111111111111111111111111101111...
result:
wrong answer 1st lines differ - expected: '111011111111111111111111111111...111111111111111111111111...
Test #6:
score: 0
Wrong Answer
time: 40ms
memory: 19164kb
input:
95803 95747 HHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHGHHGHGHHHHGHGHHHHHHGGHHHHHHHHHHHHGHHHGHHHHHHHHHGHGGHHHHH...
output:
1011011101111111111111111101111111111111111111111111111111101111111111110111111101111111001101101111...
result:
wrong answer 1st lines differ - expected: '101101110111111111111111110111...111110110111111011111111...
Test #7:
score: 0
Wrong Answer
time: 33ms
memory: 18532kb
input:
92610 90996 HHGGGHHGHGGGHGHGHGGGGGGHGGGHGGHGHGHGGHHHHHGHGGHGHGGGGHGGGHGGHHGHHHGGHGHGGHGGGHGGGGGGGGGG...
output:
1111111111111111111111111111111111111111111111111111110111111111111111111111101111011111111111011111...
result:
wrong answer 1st lines differ - expected: '111111111111111111101111111111...111111001111111111111111...
Test #8:
score: 0
Wrong Answer
time: 46ms
memory: 19236kb
input:
96224 91494 HHHHHHHHGGHHGHHHHHHHHHHHHHGHHHGHHHHHHHHHHHHHHHHHGGHHHHHHGHHHHHHHHHHHHHHHHHGHGGGHGHGHHHHH...
output:
1111011111101111111111111111011011110101001111011101111011111111111011111111111111111111111011111101...
result:
wrong answer 1st lines differ - expected: '111101011011110011111111111101...110101101111111111111110...
Test #9:
score: 0
Wrong Answer
time: 34ms
memory: 18620kb
input:
93031 96743 HHHHHHHHHGHHHHHHHHHHHHHHHHHGGHHHHGHHHGHHHHHHHHHGHHHHHHHHHHHHHHGGHHHHHGGHGHHHGHHHGHHHHHHG...
output:
0100011111101110011111110111001111101111110101110110111111101111111101111110110001011110011111011111...
result:
wrong answer 1st lines differ - expected: '010001111110111101111111011100...111111110111001111110101...
Test #10:
score: 0
Wrong Answer
time: 38ms
memory: 19320kb
input:
96645 93594 HHHHHHHHHGHGHHHHHHHGHHHHGGGHHHHHHHHHHHHHHHHHHGHHHHHGHGHHHHHGHGHHHHHGHHHHGHHHHGGHHGHHHHGH...
output:
0101010111111111111111111011111111101111111101111111111111111011111111111110111110111111111111111110...
result:
wrong answer 1st lines differ - expected: '010100011011111001111111111111...111001111111111111011001...