这个题好像是不平等的博弈吧、、、所以怎么搞?

题目似乎很模糊,相邻的棋子是指在棋盘格上相邻还是棋子间相邻、

所以一开始的思路只有   一个棋子被相邻的两个棋子夹成一个区间,

还有胡乱的猜想   双方的棋子只往一个方向跑、

好吧,是对博弈的理解不够深入、、

于是看了一天的博弈、

然后还是不会,这是一个结论题、

和博弈有关的就只有结论了

所以设计dp递推每一位为0的方案数就好了

码(所以最后还是仿写的):

#include<iostream>
#include<cstdio>
using namespace std;
#define P 1000000007
#define ll long long
ll c[20005][205],er[16],i,j,k,n,m,d,f[17][20005];
ll C(int a,int b)
{if (b*2>a) return c[a][a-b]; else return c[a][b];  }
int main ()
{scanf("%d%d%d",&n,&m,&d);er[0]=1;for(i=1;i<=15;i++)er[i]=(er[i-1]<<1)%P;c[0][0]=1;for(i=1;i<=n;i++)for(j=0;j<=m&&j<=i;j++){c[i][j]=c[i-1][j];if(j!=0)c[i][j]=(c[i][j]+c[i-1][j-1])%P;
}f[0][0]=1; for(i=0;i<15;i++){for(j=0;j<=n-m;j++){for(k=0;k*(d+1)<=m/2;k++){int o=j+k*(d+1)*er[i];if(o>n-m)break;f[i+1][o]=(f[i+1][o]+f[i][j]*C(m/2,k*(d+1)))%P;   // cout<<f[i+1][o];      }               }}ll ans=0;  for (i=0; i<=n-m; i++) ans=(ans+f[15][i]*C(n-m/2-i,m/2))%P;printf("%lld\n",(C(n,m)-ans+P)%P);     }

2017.9.4 黑白棋 失败总结相关推荐

  1. JAVA黑白棋之算法浅析

     引言   本为主要对我在开发JAVA黑白棋人机算法过程中所用的博弈思想.估值函数.搜索算法分3个方面进行了阐述,由于本人水平有限,如果大家希望了解更多有关黑白棋博弈策略以及人机算法的深入的理论研究, ...

  2. 基于Python实现的黑白棋强化学习模型

    资源下载地址:https://download.csdn.net/download/sheziqiong/85658862 一.基本原理 1. 强化学习 强化学习是指一类从(与环境)交互中不断学习的问 ...

  3. c语言翻转棋ai算法,黑白棋游戏(也叫翻转棋)(AI 版)

    黑白棋(也叫翻转棋)的棋盘是一个有8*8方格的棋盘.下棋时将棋下在空格中间,而不是像围棋一样下在交叉点上.开始时在棋盘正中有两白两黑四个棋子交叉放置,黑棋总是先下子. 下子的方法:把自己颜色的棋子放在 ...

  4. 黑白棋出现pass 的条件 java_JAVA黑白棋之学习感悟

    前言 这是我来到蓝杰之后的第一个学习感悟,阶段成果也是我第一个觉得小有成就的作品,不在于所用的知识有多么高深,而在与这是第一个凝结了失败.努力.成功这样颇有曲折经历的项目,使我收获颇多. 下面切入正题 ...

  5. [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)

    2281: [Sdoi2011]黑白棋 Time Limit: 3 Sec  Memory Limit: 512 MB Submit: 626  Solved: 390 [Submit][Status ...

  6. 人工智能导论实验2——野人渡河黑白棋问题

    人工智能导论实验2--野人渡河&黑白棋问题 实验目的及要求: 本项目要求能够理解人工智能的基本原理,理解状态空间的概念.原理和方法,掌握用状态空间表示问题的步骤,掌握搜索方法的基本原理,并能够 ...

  7. python使用蒙特卡洛树(MCTS)算法实现黑白棋miniAlphaGo for Reversi

    黑白棋(reversi),也叫苹果棋,翻转棋,是一个经典的策略性游戏.一般棋子双面为黑白两色,故称"黑白棋".因为行棋之时将对方棋子翻转,变为己方棋子,故又称"翻转棋&q ...

  8. 深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略)

    深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略) 文章目录 深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略) 黑白棋规则 传统黑白棋策略 蒙特卡洛搜索树 ...

  9. 蒙特卡洛树搜索-黑白棋(一):黑白棋介绍及棋盘类

    这是关于蒙特卡洛树搜索解决黑白棋问题的文章,如果你不了解蒙特卡洛树搜索,参看蒙特卡洛树搜索 文章目录 1. 黑白棋简介 2. 游戏规则 3. 棋盘类 4.函数具体实现 5. 测试 1. 黑白棋简介 黑 ...

最新文章

  1. GAN还有这种操作!谷歌大脑和X实验室利用模拟条件和域适应提高机器抓取效率(附论文)
  2. intel fpga 开发工具Quartus Prime 软件的安装,使用详细教程
  3. C# 修改项目文件夹名称完全版
  4. Canvas入门06-线段与像素边界
  5. TI基于MSP430F67641的电能表技术方案
  6. z变换判断稳定性和因果性_数字信号处理(王娜)-中国大学mooc-题库零氪
  7. linux的netperf测试,性能测试工具netperf安装使用
  8. 让IIS7.0.0.0支持 .iso .7z .torrent .apk等文件下载的设置方法
  9. 登陆豆瓣显示服务器开小差,豆瓣打不开
  10. “最新”手机号码归属地库制作
  11. 爱快iKuai 安装成功后运行提示程序运行中解决办法
  12. Eclipse 下载带有WTP 相应插件板本的地址
  13. 我用 Python 分析1585家电商车厘子销售数据,发现这些秘密
  14. android 使用signingConfigs进行打包
  15. 【51单片机实例】智能小车(一)--------小车的前进、后退和停止
  16. ISO SAE 21434-2021 要求、建议、允许(RQ、RC、PM)整理
  17. 免费资源跟IT常用链接
  18. 张一鸣:Stay hungry, Stay young
  19. 为方便大家,我分析导出了些高速下载器捆绑软件的反安装reg,需要的可自行选择
  20. Java 验证码识别之多线程打码兔

热门文章

  1. matlab excel 进程,Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题
  2. anaconda卸载tensorflow时,收集不到包的解决方法
  3. 创建选修专业表oracle,数据库及数据表的创建与删除 (Oracle实验)
  4. spark-OutOfMemory:GC overhead limit exceeded 解决,timelimitexceeded
  5. java foreach6_Java foreach循环是否会创建一个新对象?
  6. javascript判断日期奇偶_js中判断奇数或偶数
  7. c语言子线程给主线程发信息,如何用C语言实现多线程
  8. python的json dump_python中json.dump和json.dumps的区别
  9. 用python可以解决什么问题_学 Python 能帮你解决什么问题 ?
  10. Android studio吧,Android Studio 连接真机