上一页 1 ··· 6 7 8 9 10 11 下一页

2013年3月19日

摘要: 博弈论(一):Nim游戏从今天开始,我将会用一系列文章介绍博弈论(Game Theory)的基本知识,以OI中可能用得着的为主。当然,我对博弈论的理解还很肤浅,而且我写东西的风格向来都是“个人心得”而非“传道授业”的类型。所以若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。)Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(Combi 阅读全文
posted @ 2013-03-19 19:44 浪舟 阅读(261) 评论(0) 推荐(0) 编辑

2013年3月18日

摘要: http://acdreamoj.sinaapp.com/problem.php?id=1080递推公式 自己没有弄出来 记住吧 #include<iostream>#include<stdio.h>#include<cstring>#include<algorithm>using namespace std;long long N;long long find( int sta,int end,long long val ){ if( end - sta <= 4 ) { for( long long i = sta; i <= e 阅读全文
posted @ 2013-03-18 13:10 浪舟 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://acdreamoj.sinaapp.com/problem.php?id=1083第一道 数位dp 感触很深; 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int arr[11],num[11][4]; 8 bool vis[11][4]; 9 10 11 int judge( int stu,int i)12 {13 if( i == 3 ) return 阅读全文
posted @ 2013-03-18 13:07 浪舟 阅读(238) 评论(0) 推荐(0) 编辑
摘要: http://acdreamoj.sinaapp.com/problem.php?id=1084证明过程 链接正方形的对角线 然后证明两个三角形相等; 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 8 int main( ) 9 {10 int T;11 double N,a;12 scanf("%d",& 阅读全文
posted @ 2013-03-18 13:05 浪舟 阅读(211) 评论(0) 推荐(0) 编辑
摘要: http://acdreamoj.sinaapp.com/problem.php?id=1079注意好 I64d 和 long long 特判 最大值就行; 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 8 long long a,b,c,d; 9 10 long long abs( long long a,long long b 阅读全文
posted @ 2013-03-18 13:01 浪舟 阅读(202) 评论(0) 推荐(0) 编辑

2013年3月14日

摘要: 简单的取拿游戏一堆石子(或者其它的什么东西),下面是简单的取拿游戏规则:两名玩家,称为 I 和 II;有一堆石子,一共 21 个;一次移动操作包括取走 1 个,2 个,或者 3 个石子,至少得取走 1 个,至多取走 3 个。玩家 I 先开始,交替取,不可不取。取走最后一个石子的获胜。我们可以反向推导。如果只有 1 个,2 个或者 3 个石子留下,那么下一个将要移动的玩家获胜。如果有 4 个留下,当前这个玩家取走后留下的石子数必然是 1 个,2 个或者 3 个,这样另一个玩家必胜,因此 4 对于将要开始移动的玩家而言是必败的局面,而对前一个玩家而言是必胜的局面。如果有 5,6,7 个留下,玩家必 阅读全文
posted @ 2013-03-14 16:56 浪舟 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 题目大概意思是:先给出个数字1,然后第一个人乘以2到9中的一个数,第二个人将得到的数再乘以2到9中的一个数,轮流下去,直到其中一个人乘后超过给定的数n,则他win.就是找必败态>=162为p(162/9)18——161为N 想要进入必败态你就赢了,所以范围大(17/2)9——17为P 进入N必胜态你就输了,玩家没办法才要进入,所以范围小(8/9)1——8为N---------------------------这题其实不是求必败点,必胜点,而是求必败段,和必胜段,经过推敲后发现转换下就变成求必败,必胜段的左届,比如162,那很明显>=162/9的都是必胜点,那由博弈的思想得到,任意 阅读全文
posted @ 2013-03-14 16:32 浪舟 阅读(268) 评论(0) 推荐(0) 编辑

2013年3月13日

摘要: A题 看懂题意之后 简单模拟 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int f[100005]; 8 9 int main( )10 {11 int x,y,w,t,x1,y1,count;12 scanf("%d%d",&x1,&y1);13 x = y = w = 0,t = 1,count = 0;14 while( true 阅读全文
posted @ 2013-03-13 22:37 浪舟 阅读(160) 评论(0) 推荐(0) 编辑
摘要: A 题 水题 将字符串的第一个字母转换成大写#include<iostream>#include<stdio.h>#include<cstring>using namespace std; char str[1002];int main( ){ while( scanf("%s",&str) != EOF ) { if( (str[0] - 'A' ) > 26 ) str[0] = (str[0] - '0') - 32 +'0'; printf("%s\n&quo 阅读全文
posted @ 2013-03-13 22:01 浪舟 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<string> 5 #include<bitset> 6 using namespace std; 7 8 int main( ) 9 {10 string str = "10101010"; 11 bitset<10>cha(str,str.size() - 5); // 将最后几个元素赋值进去;12 cout<<cha<<endl;1 阅读全文
posted @ 2013-03-13 20:05 浪舟 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 下一页

导航