首先看出终止状态是全都堆在左边或者右边,然后发现黑的向左白的向右是最优策略(如果不能这样了也就该输了)

然后就不会了

参考 http://www.cnblogs.com/CQzhangyu/p/7707746.html

发现黑白之间的距离一定是不断缩小的,就相当于k堆石子,每次从1~d堆里拿走一些,根据nimk,二进制位下每一位的和都是d+1的倍数则先手必输(可以看成高配的巴什博奕)

然后设f[i][j]为前i位用了j石子,用组合数转移:f[i+1][j]=(f[i+1][j]+f[i][j-(1ll<<i)k(d+1)]c[m/2][(d+1)k])%mod

#include<iostream>
#include<cstdio>
using namespace std;
const long long N=10005,mod=1e9+7;
int n,m,d;
long long f[20][N],c[N][105],ans;
int main()
{
scanf("%d%d%d",&n,&m,&d);
for(int i=0;i<=n;i++)
{
c[i][0]=1;
for(int j=1;j<=i&&j<=m;j++)
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
}
f[0][0]=1;
for(int i=0;i<16;i++)
for(int j=0;j<=n-m;j++)
for(int k=0;(1ll<<i)*(d+1)*k<=j&&(d+1)*k<=m/2;k++)
f[i+1][j]=(f[i+1][j]+f[i][j-(1ll<<i)*k*(d+1)]*c[m/2][(d+1)*k])%mod;
for(int i=0;i<=n-m;i++)
ans=(ans+f[16][i]*c[n-i-m/2][m/2])%mod;
printf("%lld",(c[n][m]-ans+mod)%mod);
return 0;
}

bzoj 4550: 小奇的博弈【博弈论+dp】的更多相关文章

  1. 【bzoj4550】小奇的博弈 博弈论+dp

    题目描述 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色.最左边是白色棋子,最右边 是黑色棋子,相邻的棋子颜色不同.   小奇可以移动白色棋子,提比可以移动黑色的棋子, ...

  2. 【BZOJ4550】小奇的博弈 博弈论

    [BZOJ4550]小奇的博弈 Description 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色.最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同.   小 ...

  3. BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)

    4550: 小奇的博弈 Time Limit: 2 Sec  Memory Limit: 256 MBSubmit: 159  Solved: 104[Submit][Status][Discuss] ...

  4. BZOJ4550 小奇的博弈 【Nimk游戏 + dp + 组合数】

    题目 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色.最左边是白色棋子,最右边 是黑色棋子,相邻的棋子颜色不同. 小奇可以移动白色棋子,提比可以移动黑色的棋子,它们每次 ...

  5. [CSP-S模拟测试]:小奇挖矿2(DP+赛瓦维斯特定理)

    题目背景 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎. 题目描述 现在有$m+1$个星球,从左到右标号为$0$到$n$,小奇最初 ...

  6. bzoj 4547 小奇的集合

    Description 有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大 值.(数据保证这个值为非负数) Input 第一行有两个整数n ...

  7. BZOJ2281[Sdoi2011]黑白棋&BZOJ4550小奇的博弈——DP+nimk游戏

    题目描述 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同. 小A可以移动白色 ...

  8. bzoj 4711 小奇挖矿 —— 树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 就是树形DP,然而也想了半天才把转移想清楚: f[x][j][0] 表示 x 去上面 ...

  9. bzoj 4711 小奇挖矿 ——“承诺”类树形dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 对“承诺”有了更深的了解. 向外和向内要区分,所以 f [ i ][ j ] 表示根向 ...

随机推荐

  1. HDU 3118 Arbiter 判定奇圈

    题目来源:pid=3118">HDU 3118 Arbiter 题意:翻译过来就是不能有奇圈 每走一步状态会变化 当他回到起点时假设和原来的状态不一样 可能会死 求至少去掉多少条边能够 ...

  2. CSS3 animation(动画) 属性

    一.animation 1.CSS3 animation(动画) 属性 语法: animation: name duration timing-function delay iteration-cou ...

  3. Oracle 物理和逻辑备库健康监測的一个根据

    以以下keyword眼为例: 1 物理备库健康检查根据: Tue Apr 22 16:44:51 CST 2014Media Recovery Log /data/CMS/arch_log/1_583 ...

  4. tomcat 实现域名crm.test.com訪问

    **tomcat 上下文.实现的效果.是在浏览器输入ip或者域名能直接訪问.不用输入项目project名字 正常初始化都是http://10.243.12.34:8080/plcrm.要变成 crm. ...

  5. HDU 1398 Square Coins(母函数或dp)

    Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  6. ios自动生成对象类,提高开发速率

    #import "autoGenerationFileUtility.h" @implementation autoGenerationFileUtility - (void)cr ...

  7. 设计模式学习笔记——Prototype原型模式

    原型模型就是克隆. 还有深克隆.浅克隆,一切听上去都那么耳熟能详.

  8. 小程序 swiper banner 图片 居中

    var imgUrlApp = getApp().globalData.imgUrlApp; Page({ /** * 页面的初始数据 */ data: { indicatorDots: true, ...

  9. hibernate面试点

    1.谈谈你对hibernate的认识和理解 01.全自动的ORM框架 02.子项目 03.面向对象的思想来解决操作数据库 01.hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JD ...

  10. UI标签库专题三:JEECG智能开发平台 FormValidation(表单提交及验证标签)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/28484209  自己定义弹出框提示 ...