上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4203题意: 有一堆数量为 N 金币, 每次可以拿 M^x (x=0,1,2,... )个,问先手如果能获胜, 第一次最少拿几块, 不能胜则输出0;思路: sg打表找规律sg=0则为必败点, sg=1, 只要拿1个就可以了, 如果sg=2, 那么就拿M个;View Code 1 #include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include 阅读全文
posted @ 2013-04-30 20:17 淡墨æ末央 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 有这样一种取石子游戏: 有若干堆石子,每堆石子的数量都是有限的,合法的操作是“选择一堆石子并拿走若干颗(不能不拿)”;现在有两种判定胜负的方式: 1: 如果轮到某个人时所有的石子堆都已经被拿空了,则判负; 2: 如果轮到某个人时把所有的石子堆都拿空了, 使下一个人没石子可拿,则判负;面对第一种判负规则时: 局面是必败态当且仅当所有堆硬币的数量都异或起来结果为0,即a1^a2^...^an=0; 下面是简单说明. 首先:最终局面只有一个,就是全0,异或仍然是0; 然后:对于某个局面(a1,a2,...,an),若a1^a2^...^an!=0(不等号就用C++的习惯用!=来表示了),一... 阅读全文
posted @ 2013-04-30 14:13 淡墨æ末央 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3544这题被题意坑了, 英语不好的孩子伤不起~题意: 有一个N*M的蛋糕, 两个人来切, A切完, B从切出来的两块中选一块切, 最后一个不能切的为负;因此每个人都尽量均分;View Code 1 #include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include <string> 6 #include <stdlib.h&g 阅读全文
posted @ 2013-04-29 19:36 淡墨æ末央 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3951题意:有一圈n个的硬币, 两个玩家轮流取,每次他们可以取1 ~ K个连续硬币, 最后一个取完为胜;思路: 面对一个可以一次拿完的局面先手必胜, 如果k=1那么由N的奇偶性决定, 否则后手一定可以使下一个局面为对称的, 因此一定会赢;View Code 1 #include<stdio.h> 2 int main() 3 { 4 int t; 5 int n,k; 6 int i; 7 scanf("%d",&t); 8 for(i=1;i<=t;i++ 阅读全文
posted @ 2013-04-29 17:04 淡墨æ末央 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1850题意: nim博弈先手赢的方法数:思路:通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动);定义P-position和N-position,其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position,也就是“后手可保证必胜”或者“先手必败”,现在轮到move的人有必胜策略的局面是N-posi 阅读全文
posted @ 2013-04-29 15:47 淡墨æ末央 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3389题意::1-N带编号的盒子,当编号满足A>B && A非空 && (A + B) % 3 == 0 && (A + B) % 2 == 1则可以从A中取任意石头到B中.谁不能取了谁就输.思路: 其本质为阶梯博弈; 阶梯博弈:博弈在一列阶梯上进行,每个阶梯上放着自然数个点,两个人进行阶梯博弈...每一步则是将一个集体上的若干个点(>=1)移到前面去,最后没有点可以移动的人输;在本题中1,3,4 的状态不能转移到其他状态; 其他每个状态皆可转 阅读全文
posted @ 2013-04-29 14:50 淡墨æ末央 阅读(215) 评论(1) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3032题意:Alice和Bob轮流取N堆石子,每堆S[i]个,Alice先,每一次可以从任意一堆中拿走任意个石子,也可以将一堆石子分为两个小堆。先拿完者获胜。数据范围: (1≤N≤10^6,1≤S[i]≤2^31-1).思路: 此题为博弈中的—取走-分割游戏(这种游戏允许取走某些东西,然后将原来的一个游戏分成若干个相同的游戏)由于数据范围,不能直接求sg值只能打表找规律;有SJ 定理:对于任意的一个 Anti-SG 游戏,如果我们规定当局面中所有单一游戏的 SG 值为 0 时游戏 结束,则先手必胜当且仅 阅读全文
posted @ 2013-04-29 12:46 淡墨æ末央 阅读(238) 评论(2) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1220题意:一个正方体,切割成单位体积的小正方体,求所有公共顶点数<=2的小正方体的对数;思路:对于正方体中的任意两个单位正方体,其公共顶点数为 0, 2, 4;由容斥原理可知,只要减去公共顶点为4的即可。故答案为种。首先总共有 n^3 个立方体从中选2个 ,其次只有相邻的立方体才是4,所以每一列有n-1对,每个面有n^2列, 前后,左右, 上下是一样的共三个方向;View Code 1 #include <cstdio>2 int main( )3 {4 int N;5 while( 阅读全文
posted @ 2013-04-29 01:32 淡墨æ末央 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022View Code 1 #include <cstdio> 2 #include <iostream> 3 #include <cstdlib> 4 #include <stack> 5 #include <cstring> 6 using namespace std; 7 stack<char>st; 8 bool a[3000]; 9 char s1[1000], s2[1000];10 int main( )11 {12 阅读全文
posted @ 2013-04-29 00:19 淡墨æ末央 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4464题意:求字符串的ascall码和最大的一个字符串View Code 1 1 #include <iostream> 2 2 #include <cmath> 3 3 #include <cstring> 4 4 #include <cstdio> 5 5 #include <string> 6 6 #include <stdlib.h> 7 7 #include <algorithm> 8 8 using name 阅读全文
posted @ 2013-04-27 17:00 淡墨æ末央 阅读(181) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页