上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1850三堆东西 任从一堆中取若干个。Nimm Game原理还不是很明白一大神的解析 http://www.cppblog.com/kuangbin/archive/2011/11/24/167582.html(三)尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是(0,n. 阅读全文
posted @ 2012-04-24 21:55 快乐. 阅读(207) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2147n*m的方格,起点在最右上方,要走到左下方,每一步可以向下 ,左右,或左下走第一道博弈,还以为套数数的那个公式呢(1~23) (N+M-2)%3==0则输掉比赛,原来那只是一个题的公式啊。囧这个题是根据下面的规则画图步骤1:将所有终结位置标记为必败点(P点);步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点)步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ;步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。 阅读全文
posted @ 2012-04-24 20:52 快乐. 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3615题意:N头牛,M条有向边,每条边上都有一个栏杆,牛希望跨的栏尽量低,求牛跨的栏最低是多少有传递闭包,让间接相邻的两条边直接相邻 权值 max min求代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#define nMAX 302#define inf 1<<30using namespace 阅读全文
posted @ 2012-04-16 21:33 快乐. 阅读(141) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3660题意:N头牛进行比赛,问有几头牛可以确定次序读完题立马想到拓扑排序,写出来WA了N久,最后查的解题报告是传递闭包,某头牛前面和后面的牛加起来等于n-1时,则该牛的次序确定,这个思路还是lmy想出来的,就是搞数学的啊,理性思维代码:#include<iostream>#include<cstdio>#include<cstring>#define nMAX 102using namespace std;int map[nMAX][nMAX],in[nMAX],out[nMAX];int n;void 阅读全文
posted @ 2012-04-16 21:15 快乐. 阅读(130) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3614题意:每头牛都有防晒度,给出最大值和最小值,还给出防晒霜,每种防晒霜都有防晒度和数量,问最多可以有多少头牛防晒读完题首先想到二分匹配,匈牙利算法,TLE,然后改成dinic网络流还是TLE, 最后是贪心,居然是贪心,my god,以后注意了#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define nMAX 2505bool vs[nMAX];str 阅读全文
posted @ 2012-04-16 20:52 快乐. 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 12个硬币,有一个假的 或轻或重,找出假硬币开始用的模拟,考虑很多情况后来,lmy说轻的-1,重的+1,学数学的看什么都是数字,orz模拟写的两个差不多的代码:(一)#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int vs[15],cnt[15];int main(){ int CASE,ca,len,i,x,sum; char s1[15],s2[15],s3[8]; scanf("%d",&am 阅读全文
posted @ 2012-04-14 12:25 快乐. 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1252题意:给出六种币值的硬币,尽量用少得数量组合出(1~100)的币值,输出用的硬币的平均数量和用到的最多组合时的数量有一点,不是所有的组合都是六种硬币相加得到的,还有相减的情况,如有 1、2、5、10、20、50六种硬币,98=50+20+20+5+2+1 , 98=50+50-2 后一种才是答案代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define inf 10005const int M 阅读全文
posted @ 2012-04-14 09:37 快乐. 阅读(154) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3600题意:给出一个小矩形,每个格子有黑白两种状态,再给出一个大矩形,每个格子也有两种状态,从大矩形去掉一些行和列后能否形成小矩行(r,c<=20)开始的思路就是 行递归选择行,再列递归选择列 那就是2^400中情况 肯定会超时cxl提供的一个可行的巧妙的思路就是 枚举小矩形的第一行在大矩形中的位置(比如在大矩形的第k行) 然后递归在大矩形中选择N(小矩形的列数)然后从K行开始能否找到小矩形的对应行。。。这样就一次递归2^20次方是可以接受的代码:#include<iostream>#include<cstdio&g 阅读全文
posted @ 2012-04-14 09:22 快乐. 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:灯泡构成的5*6的矩阵,每个灯泡有亮或不亮两种状态,每按下一个开关变换一个灯泡的状态,它的上下左右也要变换,最后让所有的灯都熄灭输出按下开关的矩阵如果模拟枚举的话2^30种情况,会超时超时代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int map[8][8]={0},press[8][8]={0};int n=5,m=6,ca;bool fg;void change(int x){ int i,j; i=x 阅读全文
posted @ 2012-04-14 09:08 快乐. 阅读(191) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1342题意:给出K(k>=6)个数,从中选出6个数,按字典序输出所有的情况代码:注意输出格式#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int n,ans;int a[15],b[8];void print(){ int i; for(i=1;i<6;i++) printf("%d ",b[i]); p 阅读全文
posted @ 2012-04-14 08:34 快乐. 阅读(134) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页