随笔分类 - Acm
摘要:找规律。#include#include#includeint main(){ int i,n; while(scanf("%d",&n)!=EOF) { i=n%3; if(i==1||i==2) printf("Kiki\n")...
阅读全文
摘要:/*n%m==0 n状态n>=2*m 先手决定谁来面对当前的状态,并且可以知道状态,所以先手必胜。*/#includeint min(int x,int y){ return xy?x:y;}int main(){ int n,m,i; while(scanf("%d%d",&n,...
阅读全文
摘要:http://blog.csdn.net/kk303/article/details/6692506 首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( >=1 )移到前面去..最后没有点可以移动的人输.. 首
阅读全文
摘要:抽象一下把距离当做石子个数。虽然在这里石子个数可以增加,但是不管怎么增加,不会影响结果,因为你增加了,必须会有减少的。 所以类似取石子,观察平衡状态,如果(x2-x1-1)^...==0,必输。 wa好几发,绝对值忘加了!
阅读全文
摘要:#include #include #include using namespace std; #define maxn 100010 #define lson l,m,rtv) r=m-1; else l=m+1; } return -1; } void pushup(int rt) { sum[rt]=sum[rt=L&&R>=...
阅读全文
摘要:尼姆博弈的性质。最后一个取输。若a1^a2^a3...^a4=0表示利他态T,不然为利己态S。充裕堆:1个堆里的个数大于2.T2表示充裕堆大于等于2,T1表示充裕堆大于等于1,T0表示无充裕堆。S2表示充裕堆大于等于2,S1表示充裕堆大于等于1,S0表示无充裕堆。必败态:T2,S0;必胜态:S2,S...
阅读全文
摘要:如果 a1^a2^a3........^an=0,必败态。如果 a1^a2^a3........^an!=0,必胜态。对于必胜态,若a1^a2^a3........^an=k,要让对方为必败态,所以一定存在数,他的2进制有k的最高位上的1,使对方为必败态;所以如果k^a[i]#include#def...
阅读全文
摘要:有2堆石子,有2个人,每个人可以从一堆取或从2堆取一样的个数的石子,至少取1个。问先手的是胜或输。设(ak,bk)我么成为局势。 (0,0)(1,2)(3,5)(4,7)。。这种先手必输的叫奇异局势。bk=ak+k;三个性质: 1.任意自然数都包含在一个且只有一个奇异局势。 2.任意操...
阅读全文
摘要:n%(q+p)==0,也就是说先手必胜;n%(q+p)p&&kp&&k#includeint main(){ int i,n,p,q; while(scanf("%d%d%d",&n,&p,&q)!=EOF) { if(n%(q+p)==0) p...
阅读全文
摘要:简单。#include#includeint main(){ int i,t,n,m; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); if(m>=n) printf("Gr...
阅读全文
摘要:简单。#include#includeint main(){ int i,t,n,m; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); if(m>=n) printf("fi...
阅读全文
摘要:n表示先手胜 p表示先手负1~N N+1 N+2~2*N+1 2*N+2 2*N+3~3*N+2 ... n p n p n ...m总归个数 每次取1~N个根据前面的规律得到,如果m/N==m%N 那么必输,不然必胜。(...
阅读全文
摘要:http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,...
阅读全文
摘要:题意简单思路也还可以。开始从小到大排序非常烦。后来从大到小就很简单了;从大到小解决了删除的边最小。#include#include#include#define maxn 100010using namespace std;#define LL long longstruct node{ in...
阅读全文
摘要:和hdu有一题差不多。给的是损失比,1-c%就是保存了多少,找出最大的保存率即可。#include #include #include#include using namespace std; #define inf 99999999 #define maxn 50010 #define ma...
阅读全文
摘要:考虑每次血口的要少 就按照一滴血多少伤害来计算。由于直接相除有小数。考虑x/y > a/b => x*b >y*a;#include#include#includeusing namespace std;struct node{ int hp; int dps;}a[25];bool c...
阅读全文
摘要:也可以字符串搞。dp思路还是很清晰的。dp[][0]表示未锁定,dp[][1]表示锁定键。#include#include#define maxn 110char s[maxn];int min(int x,int y){ return x0;i--) s[i]=s[i-...
阅读全文
摘要:想成数塔 把时间竖的看。#include#include#define maxn 100010int max(int x,int y){ return x>y?x:y;}int dp[12][maxn];int main(){ int i,j,n,T; while(scanf("%...
阅读全文

浙公网安备 33010602011771号