hihoCoder挑战赛12 永恒游戏 模拟
-
描述
很久很久以前,当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 永恒游戏 模拟相关推荐
- hihoCoder挑战赛12 顺子(hihocoder 1177)
题目链接:http://hihocoder.com/problemset/problem/1177 题面: #1177 : 顺子 时间限制: 6000ms 单点时限: 1000ms 内存限制: 256 ...
- 暴力/图论 hihoCoder 1179 永恒游戏
题目传送门 1 /* 2 暴力:也是暴力过了,无语.无向图,两端点都要加度数和点 3 */ 4 #include <cstdio> 5 #include <algorithm> ...
- hihocoder #1179 : 永恒游戏 暴力
#1179 : 永恒游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/11 ...
- 他无意间玩了这12个游戏,却掌握了Python基础,前后只用了一个月
你学Python编程多久了?又是学了多久却依然没有学会Python的基础部分呢? 有一学生,在学校阅览室无意看到一本书,被其中的12个小游戏吸引,于是一边玩游戏一边看书中对游戏代码的介绍,才一个月左右 ...
- 壁纸图片|2020年12月游戏图片大全
2020年12月游戏图片大全 高图整理搜集了2020年12月发售游戏图片大全.包括热门游戏图片.游戏封面图片.游戏内容图片.电影类别分为动作游戏.竞速游戏.冒险游戏.模拟游戏.策略游戏,角色扮演游戏, ...
- DirectX 12 3D 游戏开发与实战第五章内容
渲染流水线 学习目标: 了解用于在2D图像中表现出场景立体感和空间深度感等真实效果的关键因素 探索如何用Direct3D表示3D对象 学习如何建立虚拟摄像机 理解渲染流水线,根据给定的3D场景的几何描 ...
- C语言实现小游戏——模拟微信小游戏《最强飞刀手》
C语言实现小游戏--模拟微信小游戏<最强飞刀手> 曾经玩过的微信小游戏,想着用C语言实现,只可惜,下图是我的上限. 这个下游戏界面简陋,把旋转的西瓜做成了平的接盘:实现的功能有:接盘的移动 ...
- hihoCoder挑战赛A题——顺子
hihoCoder挑战赛A题--顺子 题目链接:http://hihocoder.com/problemset/problem/1177 注意点 1.思路:输入四个数字分成下面几种情况: 1)有重复- ...
- python基础教程-北大学霸自学这套Python教程,7天开发12款游戏,堪称宝藏教程
下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 学习Python的人,总会到处寻找资料,比如这里看点视频,那里看点文章,但最后依然学不好Python.因为缺乏 ...
最新文章
- PPT绘制示意图视频+文字版本-一篇就学会
- gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
- 浅谈Base64编码算法
- 科大星云诗社动态20220113
- Linux创建anaconda-navigator快捷图标并固定在dock上
- AP和STA模式分别是什么意思
- [CLR via C#]4. 类型基础及类型、对象、栈和堆运行时的相互联系
- 字典树+博弈 CF 455B A Lot of Games(接龙游戏)
- 一个虚拟社交公司的融资历程
- linux容器返回宿主机,Linux下Docker容器访问宿主机网络
- iview render设置属性_iView 发布 3.4.0 版本,代号 BestLuck
- CI框架的使用-环境搭建
- 不同时区不同夏令时(夏时制)间转换
- 联想计算机怎样分区,电脑硬盘怎么分区才合理?看完秒懂
- 环信群聊头像和发送gif图片
- Gauss 消元法矩阵LU分解
- 关于FPGA中Speed Grade的说明
- SQL 开发应有的一种思维
- python 字符串转字典 编码_python基础--2(字符串、元组、列表、字典、集合、文件、编码转码)...
- 人工智能到底是风口还是泡沫?它能否改变未来“钱景”