10 2013 档案

摘要:题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点比赛时就差这题没ak,做了几天博弈终于搞懂了.#include #include #include#includeusing namespace std;#define N 1010vector adj[N]; int sg[N],n;int mex(int v){ bool vis[N]={0}; int i,w; for(i=0;i<adj[v].size();i++){ w=adj[v][i]; if(sg[w]==-1) sg[w]=mex(w); vis[.. 阅读全文
posted @ 2013-10-30 21:23 Teemo的技术blog 阅读(131) 评论(0) 推荐(0)
摘要:题意:给你很n堆石头,k代表你有k种拿法,然后给出没堆石头的数量,求胜负直接套用模版找了好久之前写的代码贴上来#include#include#includeusing namespace std;int s[101],sg[100001],k;int mex(int m){ int vis[101]={0}; int i; for(i=0;i>k,k) { for(i=0;i<k;i++) scanf("%d",&s[i]); sort(s,s+k); memset(sg,-1,sizeof(sg)); sg[0]=0; scanf("%d& 阅读全文
posted @ 2013-10-29 21:04 Teemo的技术blog 阅读(115) 评论(0) 推荐(0)
摘要:题意:给你n堆石头,每次只能在一堆取最少一个石子,最后拿走最后一堆的为胜者,问胜者有多少种赢得取法#include #includeusing namespace std;int main(int argc, char** argv) { int n,stone[1010],i,t; while(scanf("%d",&n)!=EOF,n){ t=0; for(i=0;i<n;i++){ scanf("%d",&stone[i]); t^=stone[i]; } int sum=0; for(i=0;i<n;i++) if(( 阅读全文
posted @ 2013-10-26 23:18 Teemo的技术blog 阅读(170) 评论(0) 推荐(0)
摘要:Nim游戏的概述:还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取。最后拿光珍珠的人输。后来,在一份资料上看到,这种游戏称为“拈(Nim)”。据说,它源自中国,经由被贩卖到美洲的奴工们外传。辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩。最有名的玩法,是把十二枚便士放成3、4、5三列,拿光铜板的人赢。后来,大家发现,先取的人只要在3那列里取走2枚,变成了1、4、5,就能稳操胜券了,游戏也就变得无趣了。于是大家就增加列数,增加铜板的数量,这样就让人们有了毫无规律的感觉,不易于把握。 阅读全文
posted @ 2013-10-26 23:13 Teemo的技术blog 阅读(199) 评论(0) 推荐(0)
摘要:题意:给你n个堆数据,每堆有六个数,堆与堆之间要顺时针或逆时针相等,问是否有两堆相等哈希直接算了。#include #include #includeusing namespace std;#define N 1200010struct node{ int num[6]; int next;}p[N];int cur ,hashTable[N];void initHash(){ cur=0; memset(hashTable,-1,sizeof(hashTable));} int getHash(int *num){ int hash=0; for(int i=0;i<6;i++) ha 阅读全文
posted @ 2013-10-26 21:46 Teemo的技术blog 阅读(122) 评论(0) 推荐(0)