UVA 10507 - Waking up brain
来源:互联网 发布:git mac客户端下载 编辑:程序博客网 时间:2024/05/22 16:52
每次选择一个有3个wake的邻节点的节点,标记为wake,将其计数器减清零,并且将这个节点的所有没醒着的邻节点计数器加一
#include <iostream>#include <map>#include <vector>#include <cstdio>#include <cstring>#include <memory.h>using namespace std;#define MAX 130map<int,map<int,int> >g;char awaked[10];int cnt[MAX],n,m;bool wake[MAX];int main(){while(scanf("%d",&n)==1){scanf("%d",&m);int ccnt=n-3,ans=0,f=1;memset(cnt,0,sizeof(cnt));memset(wake,0,sizeof(wake));g.clear();scanf("%s",awaked);for(int i=0;i<m;++i){char buf[5];scanf("%s",buf);g[buf[0]][buf[1]]=g[buf[1]][buf[0]]=1;}for(int i=0;i<3;++i){map<int,int>::iterator it=g[awaked[i]].begin();wake[awaked[i]]=1;for(;it!=g[awaked[i]].end();++it){if(!wake[it->first])cnt[it->first]++;}}while(ccnt>0){int flag=0;map<int,map<int,int> >::iterator it=g.begin();vector<int>v;for(;it!=g.end();++it){if(cnt[it->first]>=3){v.push_back(it->first);flag=1;cnt[it->first]=0;ccnt--;}}if(flag==0){f=0;break;}for(int i=0;i<v.size();++i){map<int,int>::iterator it=g[v[i]].begin();for(;it!=g[v[i]].end();++it){if(!wake[it->first])cnt[it->first]++;}}ans++;}if(f)printf("WAKE UP IN, %d, YEARS\n",ans);else printf("THIS BRAIN NEVER WAKES UP\n");}return 0;}
- UVA 10507 - Waking up brain
- UVa 10507 - Waking up brain
- uva 10507 Waking up Brain( 搜索 )
- Waking up early, 10 tips that work
- UVa 270 - Lining Up
- UVa 270 - Lining Up
- uva 270 - Lining Up
- UVa 270 - Lining Up
- UVa 270 - Lining Up
- UVA 270 - Lining Up
- UVA 270 Lining Up
- uva 270 Lining Up
- uva Lining Up
- uva 270 Lining Up
- Lining up(uva 270)
- UVa 270 - Lining Up
- uva 270 - Lining Up
- uva 270 Lining Up
- Java单例模式
- ganglia 图片不显示 或是 图片内容为空解决办法
- 关于应用服务器中class文件替换时遇到的小问题
- tomcat 6.0 连接池的配置
- errno出错
- UVA 10507 - Waking up brain
- 如何不让php自动把×换成×号
- jquery插件大全,开发记点网站很重要啊
- VisionMobile:2013年移动开发者经济报告(八):第二章 开发工具图景(上)
- 【Android开发学习26】界面控件之选项组件(RadioGroup和CheckBox)
- 在ASP.NET下使用jQuery UI下的Dialog,服务器端按钮无响应的问题。
- poj 1733 并查集
- data too long for column 'spath' at row 1
- Unity3D之使用 C#合成解析XML与JSON