时间限制: 20000ms
单点时限: 1000ms
内存限制: 256MB

描述

很久很久以前,当Rowdark还是个善良的魔法师时,他在一个n个点m条边的无向图上玩一个游戏。

开始时他在一些点上放些石子。每次Rowdark选择一个点A,要求点A上的石子数大于等于邻居点个数。然后对A的每个邻居B,将A上的一个石子移到B上。如果不能选出这样的点A,那么游戏结束。Rowdark想知道这个游戏会不会无限循环。为了使问题更简单,你只需要求出是否10万轮后游戏仍然继续。

输入

第一行两个整数n和m(1 ≤ n ≤ 200)。

第二行n个整数a0, a1 ... an-1表示每个点上的石子个数(0 ≤ ai ≤ 109)。

接下来m行,每行两个数x和y (x ≠ y, 0 ≤ x, y ≤ n - 1),表示在x和y之间有一条边。题目保证没有重边,且任意一个点都有邻居。

输出

如果Rowdark能玩超过100000轮,输出“INF”(不带引号),否则输出最多步数。

样例输入

3 3
1 2 1
0 1
1 2
2 0
样例输出
INF
#include <iostream>
#include <vector>using namespace std;int n,m;int choose(vector<int>& shitou, vector<vector<bool>> &map, vector<int> &nei) {for(int i = 0; i < n; ++i) {if(shitou[i] >= nei[i]) {for(int j = 0; j < n; ++j) {if(j == i) continue;if(map[i][j] == true) {shitou[j]++;shitou[i]--;}}return i;}}return -1;
}int main() {cin>>n>>m;int MAX = 100000;int cases = 0;int x = 0;int xx, yy;int num = -1;bool flag = true;vector<int> shitou;vector<vector<bool>> map(n,vector<bool>(n,false));vector<int> nei(n, 0);for(int i = 1; i <= n; ++i) {cin>>x;shitou.push_back(x);}for(int i = 1; i <= m; ++i) {cin>>xx>>yy;map[xx][yy] = true;map[yy][xx] = true;}for(int i = 0; i < n; ++i) {//calculate neighbor's geshufor(int j = 0; j < n; ++j) {if(j == i) continue;if(map[i][j] == true) {nei[i]++;}}}for(int i = 1; i <= MAX; ++i) {num = choose(shitou, map, nei);if(num == -1) {flag = false;break;}cases++;}if(flag == false) {cout<<cases<<endl;}else {cout<<"INF"<<endl;}return 0;
}

hihoCoder挑战赛12 永恒游戏 模拟相关推荐

  1. hihoCoder挑战赛12 顺子(hihocoder 1177)

    题目链接:http://hihocoder.com/problemset/problem/1177 题面: #1177 : 顺子 时间限制: 6000ms 单点时限: 1000ms 内存限制: 256 ...

  2. 暴力/图论 hihoCoder 1179 永恒游戏

    题目传送门 1 /* 2 暴力:也是暴力过了,无语.无向图,两端点都要加度数和点 3 */ 4 #include <cstdio> 5 #include <algorithm> ...

  3. hihocoder #1179 : 永恒游戏 暴力

    #1179 : 永恒游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/11 ...

  4. 他无意间玩了这12个游戏,却掌握了Python基础,前后只用了一个月

    你学Python编程多久了?又是学了多久却依然没有学会Python的基础部分呢? 有一学生,在学校阅览室无意看到一本书,被其中的12个小游戏吸引,于是一边玩游戏一边看书中对游戏代码的介绍,才一个月左右 ...

  5. 壁纸图片|2020年12月游戏图片大全

    2020年12月游戏图片大全 高图整理搜集了2020年12月发售游戏图片大全.包括热门游戏图片.游戏封面图片.游戏内容图片.电影类别分为动作游戏.竞速游戏.冒险游戏.模拟游戏.策略游戏,角色扮演游戏, ...

  6. DirectX 12 3D 游戏开发与实战第五章内容

    渲染流水线 学习目标: 了解用于在2D图像中表现出场景立体感和空间深度感等真实效果的关键因素 探索如何用Direct3D表示3D对象 学习如何建立虚拟摄像机 理解渲染流水线,根据给定的3D场景的几何描 ...

  7. C语言实现小游戏——模拟微信小游戏《最强飞刀手》

    C语言实现小游戏--模拟微信小游戏<最强飞刀手> 曾经玩过的微信小游戏,想着用C语言实现,只可惜,下图是我的上限. 这个下游戏界面简陋,把旋转的西瓜做成了平的接盘:实现的功能有:接盘的移动 ...

  8. hihoCoder挑战赛A题——顺子

    hihoCoder挑战赛A题--顺子 题目链接:http://hihocoder.com/problemset/problem/1177 注意点 1.思路:输入四个数字分成下面几种情况: 1)有重复- ...

  9. python基础教程-北大学霸自学这套Python教程,7天开发12款游戏,堪称宝藏教程

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 学习Python的人,总会到处寻找资料,比如这里看点视频,那里看点文章,但最后依然学不好Python.因为缺乏 ...

最新文章

  1. PPT绘制示意图视频+文字版本-一篇就学会
  2. gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
  3. 浅谈Base64编码算法
  4. 科大星云诗社动态20220113
  5. Linux创建anaconda-navigator快捷图标并固定在dock上
  6. AP和STA模式分别是什么意思
  7. [CLR via C#]4. 类型基础及类型、对象、栈和堆运行时的相互联系
  8. 字典树+博弈 CF 455B A Lot of Games(接龙游戏)
  9. 一个虚拟社交公司的融资历程
  10. linux容器返回宿主机,Linux下Docker容器访问宿主机网络
  11. iview render设置属性_iView 发布 3.4.0 版本,代号 BestLuck
  12. CI框架的使用-环境搭建
  13. 不同时区不同夏令时(夏时制)间转换
  14. 联想计算机怎样分区,电脑硬盘怎么分区才合理?看完秒懂
  15. 环信群聊头像和发送gif图片
  16. Gauss 消元法矩阵LU分解
  17. 关于FPGA中Speed Grade的说明
  18. SQL 开发应有的一种思维
  19. python 字符串转字典 编码_python基础--2(字符串、元组、列表、字典、集合、文件、编码转码)...
  20. 人工智能到底是风口还是泡沫?它能否改变未来“钱景”

热门文章

  1. java设计模式装饰者模式优点_java设计模式之--装饰者模式
  2. Arnold Htoa 直接调用Houdini海洋频谱做置换
  3. 网站网页打开慢是什么原因呢
  4. 苹果手机丢了手表怎么解绑(苹果手机解绑丢失手表方法)
  5. 微信小程序使用自动更新证书不成功的原因
  6. FinePrint.PdfFactory.Pro.v3.51.Incl.Keymaker-ZWT
  7. 古老密码---凯撒密码
  8. 为什么大学生沦为了 天之饺子
  9. Android使用XPush配置极光推送
  10. 分享一个装机领薪联盟:9E技术员家园