2017.9.4 黑白棋 失败总结
这个题好像是不平等的博弈吧、、、所以怎么搞?
题目似乎很模糊,相邻的棋子是指在棋盘格上相邻还是棋子间相邻、
所以一开始的思路只有 一个棋子被相邻的两个棋子夹成一个区间,
还有胡乱的猜想 双方的棋子只往一个方向跑、
好吧,是对博弈的理解不够深入、、
于是看了一天的博弈、
然后还是不会,这是一个结论题、
和博弈有关的就只有结论了
所以设计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 黑白棋 失败总结相关推荐
- JAVA黑白棋之算法浅析
引言 本为主要对我在开发JAVA黑白棋人机算法过程中所用的博弈思想.估值函数.搜索算法分3个方面进行了阐述,由于本人水平有限,如果大家希望了解更多有关黑白棋博弈策略以及人机算法的深入的理论研究, ...
- 基于Python实现的黑白棋强化学习模型
资源下载地址:https://download.csdn.net/download/sheziqiong/85658862 一.基本原理 1. 强化学习 强化学习是指一类从(与环境)交互中不断学习的问 ...
- c语言翻转棋ai算法,黑白棋游戏(也叫翻转棋)(AI 版)
黑白棋(也叫翻转棋)的棋盘是一个有8*8方格的棋盘.下棋时将棋下在空格中间,而不是像围棋一样下在交叉点上.开始时在棋盘正中有两白两黑四个棋子交叉放置,黑棋总是先下子. 下子的方法:把自己颜色的棋子放在 ...
- 黑白棋出现pass 的条件 java_JAVA黑白棋之学习感悟
前言 这是我来到蓝杰之后的第一个学习感悟,阶段成果也是我第一个觉得小有成就的作品,不在于所用的知识有多么高深,而在与这是第一个凝结了失败.努力.成功这样颇有曲折经历的项目,使我收获颇多. 下面切入正题 ...
- [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
2281: [Sdoi2011]黑白棋 Time Limit: 3 Sec Memory Limit: 512 MB Submit: 626 Solved: 390 [Submit][Status ...
- 人工智能导论实验2——野人渡河黑白棋问题
人工智能导论实验2--野人渡河&黑白棋问题 实验目的及要求: 本项目要求能够理解人工智能的基本原理,理解状态空间的概念.原理和方法,掌握用状态空间表示问题的步骤,掌握搜索方法的基本原理,并能够 ...
- python使用蒙特卡洛树(MCTS)算法实现黑白棋miniAlphaGo for Reversi
黑白棋(reversi),也叫苹果棋,翻转棋,是一个经典的策略性游戏.一般棋子双面为黑白两色,故称"黑白棋".因为行棋之时将对方棋子翻转,变为己方棋子,故又称"翻转棋&q ...
- 深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略)
深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略) 文章目录 深度解析黑白棋AI代码原理(蒙特卡洛搜索树MCTS+Roxanne策略) 黑白棋规则 传统黑白棋策略 蒙特卡洛搜索树 ...
- 蒙特卡洛树搜索-黑白棋(一):黑白棋介绍及棋盘类
这是关于蒙特卡洛树搜索解决黑白棋问题的文章,如果你不了解蒙特卡洛树搜索,参看蒙特卡洛树搜索 文章目录 1. 黑白棋简介 2. 游戏规则 3. 棋盘类 4.函数具体实现 5. 测试 1. 黑白棋简介 黑 ...
最新文章
- 新算法可模拟人脑整体神经电路
- linux下安装expect解决方法
- 美团王庆:当老板对指标进行灵魂拷问时,该如何诊断分析?
- 【三分钟讲清区块链/比特币】之二:比特币入门教程
- c++2015语言,2015年7月TIOBE编程语言排行榜:C++ 的复兴
- 笔记本本地连接显示电缆拔出_没有安全电缆槽的笔记本电脑如何固定?
- 请问:如何写出没有BUG的代码?
- 潮流趋势UI素材|梯度半透明、透明套件
- 分布式版本控制工具 Git
- 剑指:合并两个排序的链表
- linux 中select()函数的使用
- CCS的c语言编程,CCS_C语言编程
- WBS和TASK的区别?
- python制作“电子钢琴”
- 200行代码让你找回童年的记忆,C + EasyX实现《拼图》小游戏!
- 入局智能健身镜,小度破圈进行时
- Maven构建docker镜像并打包推送到远程私有仓库
- kali下安装gvm(原openvas)
- Linux服务器下搭建SFTP服务
- 服务器上Kafka启动报错:error=‘Cannot allocate memory‘ (errno=12)
热门文章
- kohana php,[php框架]kohana中文译本.pdf
- leetcode89 (2022.1.8)
- TikZ绘图示例——尺规作图:线段的任意等分
- anaconda卸载tensorflow时,收集不到包的解决方法
- 数字图像处理 阈值分割 MATLAB实验
- python实现爬虫下载美女图片
- 微信小程序相关项目实例集合
- python代码实现文件复制txt文件_工具类(1.1)
- android动画能超过父容器吗,Android中你不得不知道的动画知识 (一)
- c++ map 修改value_哈希表:其实需要哈希的地方都能找到map的身影