为什么E题通过率是93.33啊,有没有好心人告诉我哪里出了问

#include <bits/stdc++.h>

using namespace std;

#define ll long long

char f[1000001];

vector<int>k[1000001];

int flag;

bool bfs(int pos,int pre)

{

char c;

if(f[pos]=='d')

{

c='p';

}

else

{

c='d';

}

for(int i=0;i<k[pos].size();i++)

{

if(k[pos][i]==pre)

{

continue;

}

if(f[k[pos][i]]=='?')

{

f[k[pos][i]]=c;

}

else if(f[k[pos][i]]!=c)

{

return false;

}

bfs(k[pos][i],pos);

}

return true;

}

int main()

{

ios::sync_with_stdio(false);

int n;

cin>>n;

int pos;

for(int i=1;i<=n;i++)

{

cin>>f[i];

}

for(int i=1;i<=n;i++)

{

if(f[i]!='?')

{

pos=i;

flag=1;

break;

}

}

if(flag==0)

{

f[1]='p';

pos=1;

}

for(int i=1;i<n;i++)

{

int x,y;

cin>>x>>y;

k[x].push_back(y);

k[y].push_back(x);

}

if(bfs(pos,0))

{

for(int i=1;i<=n;i++)

{

cout<<f[i];

}

}

else

{

cout<<-1;

}

return 0;

}

全部评论

相关推荐

认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务