摘要: 很经典的问题,思路转载自http://blog.csdn.net/ACM_cxlove?viewmode=contents题目:这是一个经典问题,有n个海盗,分m块金子,其中他们会按一定的顺序提出自己的分配方案,如果50%以上的人赞成,则方案通过,开始分金子,如果不通过,则把提出方案的扔到海里,下一个人继续。首先我们讲一下海盗分金决策的三个标准:保命,拿更多的金子,杀人,优先级是递减的。同时分为两个状态稳定状态和不稳定状态:如果当n和m的组合使得最先决策的人(编号为n)不会被丢下海, 即游戏会立即结束, 就称这个状态时"稳定的". 反之, 问题会退化为n-1和m的组合, 直 阅读全文
posted @ 2013-09-01 16:37 _随心所欲_ 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 简单的容斥原理!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #define I(x) scanf("%d",&x) 6 #define ll __int64 7 #define MAX 500000 8 using namespace std; 9 int prime[MAX],cnt,e[MAX],num;10 ll a,b,res1,res2;11 bool f[MAX];12 void init()13 {14 cnt=0;15 memset(f,0,sizeof(f));16 for(int i 阅读全文
posted @ 2013-09-01 14:39 _随心所欲_ 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 线段树!!1A代码如下: 1 #include 2 #include 3 #define lson i>1;26 built(lson,l,m,!f);27 built(rson,m+1,r,!f);28 if(T[i].flag) T[i].res=T[lson].res|T[rson].res;29 else T[i].res=T[lson].res^T[rson].res;30 }31 void update(int i,int d,ll p)32 {33 if(T[i].l==d&&T[i].r==d){34 T[i].res=p... 阅读全文
posted @ 2013-09-01 09:52 _随心所欲_ 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 线段树+剪枝优化!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #define ll __int6411 #define pi acos(-1.0)12 #define lson i>1;34 built(lson,l,m);35 built(rson,m+1,r);36 T[i].sum=T[lson].sum+T[rson].sum;37 T[i].flag=T[lson].flag||T... 阅读全文
posted @ 2013-09-01 09:03 _随心所欲_ 阅读(149) 评论(0) 推荐(0) 编辑