2013年7月7日

【转】ACM 取石子问题

摘要: 取石子问题有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的 法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走 阅读全文

posted @ 2013-07-07 12:37 KimKyeYu 阅读(313) 评论(0) 推荐(0) 编辑

【转】ACM博弈知识汇总

摘要: 博弈知识汇总有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个 人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏 ,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够 取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果 n=(m+1)r+s,(r为任意自然数,s≤m),那么 阅读全文

posted @ 2013-07-07 12:33 KimKyeYu 阅读(220) 评论(0) 推荐(0) 编辑

2013年7月5日

EOJ 2857 编辑距离

摘要: http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=2857一道典型dp,状态转移方程类似LCS。操作有三种:1修改一个字母,2删除一个字母,3插入一个字母。对于dp[i][j],能从如下状态转移而来: if(a[i] == b[j]) 不操作—— 对应状态dp[i-1][j-1]; else 操作1——a[i]改成b[j], 对应状态dp[i-1][j-1]+1; 操作2——删a[i], 对应状态dp[i-1][j]+1; 操作3——在a[i], a[i+1]间插入m,使 m = b[j], 对应状态... 阅读全文

posted @ 2013-07-05 15:32 KimKyeYu 阅读(224) 评论(0) 推荐(0) 编辑

2013年7月4日

EOJ 1047 Guardian of Decency

摘要: EOJ 1047 http://acm.cs.ecnu.edu.cn/problem.php?problemid=1047POJ 2771 http://poj.org/problem?id=2771二分匹配 不说了,直接上代码 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 505 11 struct node 12 { 13 int h; 14 char ... 阅读全文

posted @ 2013-07-04 22:45 KimKyeYu 阅读(207) 评论(0) 推荐(0) 编辑

EOJ-1853 Mountain Walking

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1853题意,从图的左上角走到图的右下角,寻找一条路径使得路径上的数字的MAX-MIN最小(不在意路径的长度)直接DFS剪枝比较难写(也感觉要T),看到差值最大为110,用二分枚举了差值(MAX-MIN)(从0到110),再枚举了图上的最小值。大意就是,先二分枚举差值m,再枚举图中可能的最小值a(从真·最小值到真·最大值),min=a,max=a+m。接着对起点DFS,看能否在min 2 #include 3 #include 4 #include 5 #include 6 #i 阅读全文

posted @ 2013-07-04 02:14 KimKyeYu 阅读(264) 评论(0) 推荐(0) 编辑

2013年7月3日

EOJ 1186 Anniversary party

摘要: EOJ 1186 http://acm.cs.ecnu.edu.cn/problem.php?problemid=1186题意:给定一棵树,选取一定的节点,相邻父子节点不可同时选取。 树型dp,不能简单地用并查集分组。 题解: http://blog.csdn.net/woshi250hua/article/details/7641589 1 //hdu 2 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 12 using namesp... 阅读全文

posted @ 2013-07-03 17:19 KimKyeYu 阅读(242) 评论(0) 推荐(0) 编辑

EOJ 2113 WY II

摘要: EOJ 2113 http://acm.cs.ecnu.edu.cn/problem.php?problemid=2113题意:背包问题,注意到N很小30,V很大10^7,故用dfs。简单的dfs——O(2^N),这里需用剪枝。引用背包九讲:基本的剪枝方法不外乎可行性剪枝或最优性剪枝。1.可行性剪枝即判断按照当前的搜索路径搜下去能否找到一个可行解,例如:若将剩下所有物品都放入背包仍然无法将背包充满(设题目要求必须将背包充满),则剪枝。2.最优性剪枝即判断按照当前的搜索路径搜下去能否找到一个最优解,例如:若加上剩下所有物品的权值也无法得到比当前得到的最优解更优的解,则剪枝。这题用2.最优性剪枝。 阅读全文

posted @ 2013-07-03 15:59 KimKyeYu 阅读(219) 评论(0) 推荐(0) 编辑

2013年7月2日

EOJ-2144 抗震机械制造

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2144题意:给出n种物品以及m种材料,每种物品由不同材料制成,每种材料需要一定的资金(付钱后可无限用),求资金不超过给定p的情况下能造出的最多种类物品题目用二进制的方式表示物品由哪些材料构成,1表示选,0表示不选,使用时转化为十进制,过程以二进制为主。思路:记下每个物品的材料状态(二进制转化为十进制)(a[i]),在资金不超过限定的条件下,选取包含给出物品材料状态的某种状态。假设某物品的材料状态为1010,则所有包含其状态的情况,都可以制造出该物品(如1110,1111,1011),即如果没有资金 阅读全文

posted @ 2013-07-02 22:40 KimKyeYu 阅读(256) 评论(0) 推荐(0) 编辑

EOJ 1087 As long As possible

摘要: EOJ 1087http://acm.cs.ecnu.edu.cn/problem.php?problemid=1087POJ 1383题意:参看了别人的思路,此题无环,即树的最长路。 思路来自以下链接,写的很好,我就不献丑了。 http://blog.csdn.net/nvfumayx/article/details/7540465贴个代码: 1 //poj 1383 2 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define MAXN 100510 11 using nam... 阅读全文

posted @ 2013-07-02 15:58 KimKyeYu 阅读(285) 评论(0) 推荐(0) 编辑

2013年6月30日

EOJ-2112 WYI

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2112题意:给出时间上限,并给出每道题需要完成的时间以及得到的价值,求能得到的最大价值与01背包不同的是,这题的时间最大10^9,即容量为这么多,不能直接对容量DP,但发现每道题获得的价值有上限200,且n最大为100,就可以对价值进行DP,然后得到所有价值中时间小于等于给出最大时间的最大值即 dp[i]为获得价值为i需要花费的最短时间,转移方程为dp[i]=min{dp[i],dp[i-V]+t}; 选出{max(i)|dp[i] 2 #include 3 #include 4 #include 阅读全文

posted @ 2013-06-30 03:00 KimKyeYu 阅读(232) 评论(0) 推荐(0) 编辑

导航