暴力/图论 hihoCoder 1179 永恒游戏

题目传送门

 1 /*
 2     暴力:也是暴力过了,无语。无向图,两端点都要加度数和点
 3 */
 4 #include <cstdio>
 5 #include <algorithm>
 6 #include <cstring>
 7 #include <vector>
 8 #include <cmath>
 9 using namespace std;
10
11 typedef long long ll;
12 const int MAXN = 2e2 + 10;
13 const int INF = 0x3f3f3f3f;
14 ll a[MAXN];
15 vector<int> G[MAXN];
16 int degree[MAXN];
17
18 int main(void)        //hihoCoder 1179 永恒游戏
19 {
20     // freopen ("C.in", "r", stdin);
21
22     int n, m;
23     while (scanf ("%d%d", &n, &m) == 2)
24     {
25         for (int i=0; i<n; ++i)    scanf ("%lld", &a[i]);
26         for (int i=0; i<n; ++i)    G[i].clear ();
27         memset (degree, 0, sizeof (degree));
28         while (m--)
29         {
30             int u, v;    scanf ("%d%d", &u, &v);
31             degree[u]++;    degree[v]++;
32             G[u].push_back (v);    G[v].push_back (u);
33         }
34
35         bool ok = false;
36         for (int i=1; i<=100001; ++i)
37         {
38             ok = false;
39             for (int j=0; j<n; ++j)
40             {
41                 if (a[j] >= degree[j])
42                 {
43                     for (int k=0; k<G[j].size (); ++k)
44                     {
45                         a[j]--;    a[G[j][k]]++;
46                     }
47                     ok = true;    break;
48                 }
49             }
50             if (!ok)    {printf ("%d\n", i - 1); break;}
51         }
52         if (ok)    puts ("INF");
53     }
54
55     return 0;
56 }
时间: 2024-10-08 07:27:24

暴力/图论 hihoCoder 1179 永恒游戏的相关文章

hihocoder #1179 : 永恒游戏 暴力

#1179 : 永恒游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1179 Description 很久很久以前,当Rowdark还是个善良的魔法师时,他在一个n个点m条边的无向图上玩一个游戏. 开始时他在一些点上放些石子.每次Rowdark选择一个点A,要求点A上的石子数大于等于邻居点个数.然后对A的每个邻居B,将A上的一个石子移到B上.如果不能选出这样的点A,那么

hihoCoder #1179 : 永恒游戏 (暴力枚举)

题意:给出一个有n个点的无向图,每个点上有石头数个,现在的游戏规则是,设置某个点A的度数为d,如果A点的石子数大于等于d,则可以从A点给每个邻接点发一个石子.如果游戏可以玩10万次以上,输出INF,否则输出最多能玩几次. 思路:暴力枚举每个可以玩的点,假如可以玩无限次,且当前状态为Z(指所有点的石头数的序列作为一个状态),那么在玩了多次之后,一定会造成循环,也就是说,玩几次之后,每个点的石子数和初始的石子数一模一样,这样子我再重复之前是怎么玩的就可以无限玩了.但是由于有200个点,所以玩一次就去

hihoCoder1179 永恒游戏 (图游戏&amp;&amp;暴力)

题目链接:传送门 题意: 一个无向图,每个图有n个节点,m条边,每个点的权值为a[i]. 如果这个点的权值大于他的度数,那么与他相连的点的权值都 可以加1,该点的权值减去他的度数.问这个游戏能否进行100000轮. 分析: 对于一个固定的初始局面,不论怎么操作,要么可以无限操作下去, 要么在相同步数后停在相同的局面上.因此可以直接暴力模拟下. 代码如下: #include <iostream> #include <cstdio> #include <cstring> #

hihoCoder - #1173 : 博弈游戏&#183;Nim游戏&#183;三

#1173 : 博弈游戏·Nim游戏·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在这一次游戏中Alice和Bob决定在原来的Nim游戏上增加一条规则:每一次行动时,不仅可以选择一堆取走任意数量的石子(至少取1颗,至多取出这一堆剩下的所有石子),还可以选择将一堆石子分成两堆石子,但并不取走石子.比如说有一堆石子为k个,当Alice或者Bob行动时,可以将这一堆石子分成两堆,分别为x,y.满足x+y=k,x,y>0.那么增加了这一条规则后,在Alice总先手的

HihoCoder - 1615矩阵游戏II

矩阵游戏II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个NxN的整数矩阵,小Hi每次操作可以选择两列,将这两列中的所有数变成它的相反数. 小Hi可以进行任意次操作,他的目标是使矩阵中所有数的和尽量大.你能求出最大可能的和吗? 输入 第一行一个整数N. 以下N行,每行N个整数Aij. 对于30%的数据,2 ≤ N ≤ 10 对于100%的数据,2 ≤ N ≤ 200, -1000 ≤ Aij ≤ 1000 输出 最大可能的和 样例输入 4 -1 1 1

【hihoCoder】【挑战赛#12】

模拟+枚举+模拟……+构造 QAQAQQQ rank12求杯子! A 顺子 ……模拟题,分类讨论一下就好了……比如当前四张牌是不是同一花色……是不是连续的四张牌,如果是连续的四张牌,是不是两边的……(呀我好像忘了判左边...只判了J Q K A....没判A 2 3 4... 没关系加几个字符就好了……嗯代码已改 1 //hihocoder 12 A 2 #include<vector> 3 #include<cstdio> 4 #include<cstring> 5

Xsolla带你参观2014年韩国游戏展G-Star

G-Star 2014终于到来了,全世界的玩家怀着无比兴奋的心情聚集韩国釜山,来参加全球第四大游戏展. 来韩国釜山的Gstar,与Xsolla一起享受游戏盛宴!? 今年是全球游戏展会十周年,大家都很清楚,今年参展人数又破纪录了.去年一共有1235个企业参加,而今天的数字达到了1397. G-Star开始于2004年,是韩国最大的游戏展会.韩国最大的游戏公司会展现丰富多彩的活动.其中包括Nexon, NCSoft, Smile Gate, Sega,Intel和Konami. Xsolla的展台位

cocos2d-x多分辨率适配方案:setDesignResolutionSize使用

1. setDesignResolutionSize使用方法及主要的三种适配模式 在cocos2d-x 2.0里,提供了一个叫做setDesignResolutionSize的方法,直接一次设置就可以自动适配各种分辨率.这个方法的注释如下: enum ResolutionPolicy { kResolutionExactFit, kResolutionNoBorder, kResolutionShowAll, kResolutionFixedHeight, kResolutionFixedWid

Cocos2d-x 屏幕适配解决方案

1. setDesignResolutionSize使用方法及主要的三种适配模式 在cocos2d-x 2.0里,提供了一个叫做setDesignResolutionSize的方法,直接一次设置就可以自动适配各种分辨率.这个方法的注释如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 enum ResolutionPolicy { kResolutionExactFit , kResolutionNoBorder , kResolutio