原题:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2083

大意:两个人分别对n条绳子染 每次染m长 最后染不下的输,问先手胜负

思路:每一条绳子看做一个子问题(求每个绳子的SG再异或就是整个事件的SG),每条绳子 染的m的段 左右两端各一段,

分别求这左右两端的SG再异或 通过SG打表或递归求出整个绳子的各地方的SG

#include<stdio.h>
#include<string.h>
int fib;
int SG[60];void getsg(){bool vis[56];memset(SG,0,sizeof(SG));for(int i=2;i<=50;i++){ //i 为当前总长度memset(vis,0,sizeof(vis));for(int j=0;j+2<=i;j++)  //j 为左端长度vis[SG[j]^SG[i-j-2]]=1;for(int k=0;k<=55;k++)if(vis[k]==0){SG[i]=k;break;}}}int main(){fib=2;getsg();int n,t;int sum=0;while(~scanf("%d",&n)){sum=0;while(n--){scanf("%d",&t);sum^=SG[t];}if(sum==0)printf("No\n");else printf("Yes\n");}return 0;
}

另外还有一种题型;

//将上题的线段改为环 做法一样先手先取一段m 问先手胜负
//思路还是一样 先手先取一段,破环为线段,现在就是换对手考虑线段
//做法还是一样 这边改为SG(n-m)  然后判断胜负条件改为和原题相反(应该懂吧?)

博弈---ZOJ 2083 Win the Game(染绳子)相关推荐

  1. java 对象构造函数_20.Java基础_对象的构造函数

    package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...

  2. [外挂7] 井字棋外挂 博弈算法

    >_<:本次是综合以上的学习,然后加入博弈算法,来实现井字棋的外挂[井字棋代码可以在[软件项目]里找到!] >_<:首先还是要加一个按钮:即[自动对战]button5 > ...

  3. java 泛型 class t_java 泛型中classT 和T的区别是什么?

    public boolean edit(T entity) 和public T get(Class c, Serializable id)中这两种参数的定义和调用有什么区别? public boole ...

  4. ZOJ 3964Yet Another Game of Stones 扩展尼姆博弈

    ZOJ 3964Yet Another Game of Stones 扩展尼姆博弈 题意 思路 Code 传送门: 题意 给n堆石头,每堆石头有a个数量和b性质.Alice和Bob玩游戏,每次只能在一 ...

  5. ZOJ 3452 Doraemon's Stone Game(博弈)

    ZOJ的博弈题目,主角是哆啦A梦和多啦美,下面简称为A和B 游戏背景是两个人相互取石子,石子有黑白两种颜色,每个人只能去对应颜色的石子.谁不能操作就算输. 游戏规则 1 A只能拿白色的石头,也就是w的 ...

  6. NOJ——1672剪绳子(博弈)

    [1672] 剪绳子 时间限制: 500 ms 内存限制: 65535 K 问题描述 已知长度为n的线圈,两人依次截取1~m的长度,n, m为整数,不能取者为输. 输入 输入n, m:( 0 < ...

  7. 【ZOJ - 3591】Nim(博弈问题,思维,STLmap)

    题干: Nim is a mathematical game of strategy in which two players take turns removing objects from dis ...

  8. ZOJ 3964 Yet Another Game of Stones (博弈)

    题意:题意跟普通的nim博弈差不多  就是一位选手取的时候 加了一个限制条件 思路: 1.全部b[i]=0 那么 这个就是Al先手的NIM博弈 2.有多个b[i]>=1&&a[i ...

  9. LeetCode 464 Can I Win(min-max博弈算法)

    问题:给出最大可选整数及目标数,使得所选的数的总和最先大于等于目标数的作为胜利者. 思路:使用极大极小值算法.根据在搜索树上遍历可选集合,如果已经选择过,则直接跳过.因为可选的整数在[1,20]区间内 ...

最新文章

  1. SQL Server 2012入门T-SQL基础篇:(8)Delete语句
  2. opencv用haartraining训练出现的一些问题
  3. spark学习-68-源代码:driver端接收executor的心跳
  4. 免费WEB打印控件—PAZU
  5. 190317每日一句
  6. 使用proxychains匿名浏览,清理痕迹(六)
  7. 剑指 Offer(C++版本)系列:剑指 Offer 13 机器人的运动范围
  8. Pentaho bi 中文文档
  9. 伊宅购集团伊家田园勠力同心数字农业项目说明会圆满举行!
  10. 【带你快速了解人工智能开发Python基础课程第二周】
  11. 六大基酒——朗姆酒的喝法
  12. rrpp协议如何修改_RRPP配置注意事项
  13. MT7621芯片性能,MT7621路由器参数介绍
  14. mencoder 和ffmpeg常用命令
  15. 服务器租用过程中网站被黑,怎么解决这种情况?
  16. JS实现段落的收缩与展开
  17. java 开发微型公众账号应用
  18. 【转载】Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
  19. 消防栓信息计算机管理系统,智能消防栓监控系统
  20. PAL到底是720还是768?

热门文章

  1. 2017年对口招生c语言及答案,2017年对口升学计算机专业试题(含答案)
  2. fomo3D漏洞学习文章
  3. 3.2栈和队列——链栈基本操作的实现
  4. 易语言运行cmd命令move移动文件
  5. python123计算分段函数_Python 专题四 python 科学计算
  6. RGB读取转为BGR显示
  7. 张一鸣:给产品技术人才的建议
  8. 图形在儿童食品包装中的应用 计算机毕设源码72976
  9. http://www.sanjinche.com/赛博坦星球来客 山西仁通实拍雪佛兰大黄蜂
  10. vim实战教程:10分钟初学者入门