2021年河南省赛——I.七便士(思维+并查集)
2021/5/30 18:20:20
本文主要是介绍2021年河南省赛——I.七便士(思维+并查集),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021年河南省赛——I.七便士(思维+并查集)
原题链接
思路:
可以看出,如果未填充的部分是一条链的话,可以把剩下的都添进去。比如,第一次填倒数第二个,然后移动到倒数第一个,以此类推。
用并查集判的。
代码:
#define PI acos(-1) const int maxn=1e5+10; const ll mod=1e9+7; int g[10][10]; int root[15]; int Find(int x) { if(x!=root[x]) root[x]=Find(root[x]); return root[x]; } int main() { for(int i=1; i<=8; i++) { int x=(i+2)%8+1,y=(i+4)%8+1; g[i][x]=g[x][i]=g[i][y]=g[y][i]=1; } int T=read; while(T--) { for(int i=1; i<=8; i++) root[i]=i; string s; cin>>s; vector<int>v; for(int i=0; i<s.size(); i++) if(s[i]=='0') v.push_back(i+1); bool flag=1; for(int i=0; i<v.size(); i++) for(int j=0; j<v.size(); j++) if(i!=j) { if(g[v[i]][v[j]]) { int fu=Find(v[i]),fv=Find(v[j]); if(fu!=fv) root[fu]=fv; } } int cnt=0; for(int i=0;i<v.size();i++) if(v[i]==Find(v[i])) cnt++; if(cnt==1) puts("Yes"); else puts("No"); } return 0; }
这篇关于2021年河南省赛——I.七便士(思维+并查集)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南