W's Cipher
摘要:其他人写的分析:Slyar:题意理解起来比较难,看了10几分钟才明白...大意就是把字符串按字母分成3组,[a-i]一组,[j-r]一组,[s-z]以及其他字符一组,然后给出了3个整数表示每组内的轮换间隔,让你在各组内分别旋转...哎,自己多看看就明白了。理解了题意这题就没什么难度了,继续练习STL,这次使用了vector,很爽。我的代码注释很详细,算法我就不说了。# include <iostream># include <vector># include <string>using namespace std;int main(){ int k1, k2
阅读全文
posted @
2012-02-29 14:45
万里心晴
阅读(264)
推荐(0)
1850 (尼姆博弈)Being a Good Boy in Spring Festival
摘要:Problem Description一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地 强烈地 要求洗一次碗某一天早起 给爸妈用心地做回早餐如果愿意 你还可以和爸妈说咱们玩个小游戏吧 ACM课上学的呢~下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。现在我们不想研究到底先手为胜还是为负,我只想问大家:——“先手的人如果想赢,第一步有几种选择呢?”Input输入数据包含多个测试用
阅读全文
posted @
2012-02-26 17:03
万里心晴
阅读(209)
推荐(0)
2188 (巴什博弈)悼念512汶川大地震遇难同胞——选拔志愿者
摘要:1 # include <stdio.h> 2 3 int main() 4 { 5 int n; 6 int a, b; 7 scanf("%d", &n); 8 while (n--) 9 {10 scanf("%d %d", &a, &b);11 if (a % (b + 1) == 0)12 printf("Rabbit\n");13 else14 printf("Grass\n");15 }16 17 return 0;1...
阅读全文
posted @
2012-02-26 16:28
万里心晴
阅读(144)
推荐(0)
2149 Public Sale (巴什博弈)
摘要:Problem Description虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有Lele和他的死对头Yueyue。通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。Lele和Yueyue虽然考试不行
阅读全文
posted @
2012-02-26 16:19
万里心晴
阅读(156)
推荐(0)
2147 kiki's game
摘要:Problem DescriptionRecently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of the chesserboard is n*m.First of all, a coin is placed in the top right corner(1,m). Each time one people can move the coin into the left, the undern
阅读全文
posted @
2012-02-26 16:05
万里心晴
阅读(229)
推荐(0)
1846 (巴什博弈) Brave Game
摘要:1 /* 2 巴什博奕(Bash Game): 3 只有一堆n个物品,两个人轮流从这堆物品中取物,规 4 定每次至少取一个,最多取m个。最后取光者得胜。 5 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。 6 因此我们发现了如何取胜的法则:如果n=(m+1)*r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个, 7 那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个, 8 以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。 9 .
阅读全文
posted @
2012-02-26 15:40
万里心晴
阅读(187)
推荐(0)
博弈论(理论知识)
摘要:博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。博弈论分类:(摘自百度百科)(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)*r.
阅读全文
posted @
2012-02-26 15:32
万里心晴
阅读(718)
推荐(0)
string类常用函数
摘要:C++string类常用函数string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字符操作:const char &operator[](int n)const;const char &at(int n)const;char &oper
阅读全文
posted @
2012-02-26 13:33
万里心晴
阅读(185)
推荐(0)
堆排序
摘要:1 /* 2 * Author: Tanky Woo 3 * Blog: www.WuTianQi.com 4 * Data: 2010.12.20 5 * Note: 堆排序(Heap Sort) 6 */ 7 #include <iostream> 8 using namespace std; 9 10 // 输出当前堆的排序状况11 void PrintArray(int data[], int size)12 {13 for (int i=1; i<=size; ++i)14 cout <<data[i]<<"";15 co
阅读全文
posted @
2012-02-25 15:55
万里心晴
阅读(145)
推荐(0)
二叉排序树
摘要:1 BinarySortTreeADT.h 2 /* 3 *二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。 4 *其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树: 5 *①若它的左子树非空,则左子树上所有结点的值均小于根结点的值; 6 *②若它的右子树非空,则右子树上所有结点的值均大于根结点的值; 7 *③左、右子树本身又各是一棵二叉排序树。 8 *上述性质简称二叉排序树性质(BST性质),故二叉排序树实际上是满足BST性质的二叉树。 9 */ 10 #ifndef _BINARYSORTTREEA...
阅读全文
posted @
2012-02-25 15:34
万里心晴
阅读(1835)
推荐(0)