尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

洛谷P2490 [SDOI2011] 黑白棋

洛谷P2490 [SDOI2011] 黑白棋
📅 发布时间:2026/6/21 0:06:59

传送门

首先容易想到,白色棋子与其右边的黑色棋子越靠越近,最后挨在一起,与其他棋子无关。

朴素地想到 \(NimK\) 的建模,一共有 \(\dfrac{k}{2}\) 堆石子,每次取 \(d\) 堆。

注意到必胜局面比较难求,适合正难则反,用总方案数 \(\dbinom{n}{k}\) 减去必败局势。

难点在于 \(DP\)。

设计状态 \(dp_{i,j}\) 表示当前选完二进制第 \(i-1\) 位,一共选了 \(j\) 个石子。

考虑每个二进制位 \(\sum_{i=1}^n (a_i)_s = x(d+1)\) 必败,有转移方程:

\[dp_{i+1,j+2^ix(d+1)} = \sum dp_{i,j}\times \binom{\frac{k}{2}}{x(d+1)} \]

因为 \(n \le 1e4\),\(i\) 遍历到 \(10\) 的样子就行了。

最后统计答案需要枚举每一堆的起点位置,即在原题中的白棋的位置:

\[ans = \sum_{i=0}^{n-k} dp_{11,i} \times \dbinom{n-i-\frac{k}{2}}{\frac{k}{2}} \]

\(\huge \mathscr{Code}\)

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e4+100,MOD = 1e9+7;
int n,m,k,d,fac[N],inv[N],dp[13][N],ans;
int qpow(int a,int b){int ans = 1;while(b){if(b&1) ans = ans*a%MOD;a = a*a%MOD;b >>= 1; }return ans;
}
void init(int n){fac[0] = inv[0] = 1;for(int i=1;i<=n;i++) fac[i] = fac[i-1]*i%MOD;inv[n] = qpow(fac[n],MOD-2);for(int i=n-1;i;i--) inv[i] = inv[i+1]*(i+1)%MOD;
}
int Choose(int n,int m){return fac[n]*inv[m]%MOD*inv[n-m]%MOD;
}
signed main(){cin>>n>>k>>d;init(n);dp[0][0] = 1;for(int i=0;i<=11;i++){int now = (1<<i);for(int j=0;j<=n-k;j++){for(int x=0;x*(d+1)<=k/2;x++){if(j+now*x*(d+1)>n-k) break;dp[i+1][j+now*x*(d+1)] = (dp[i+1][j+now*x*(d+1)] + dp[i][j]*Choose(k/2,x*(d+1))%MOD)%MOD;}}}for(int i=0;i<=n-k;i++){ans = (ans + dp[12][i]*Choose(n-i-k/2,k/2)%MOD)%MOD;}ans = (Choose(n,k)-ans+MOD)%MOD;cout<<ans;return 0;
}

相关新闻

  • 传统软件部署的痛点
  • CF19E Fairy
  • 鸿蒙应用开发从入门到实战(三):第一个鸿蒙应用

最新新闻

  • 3分钟终极指南:Windows和Office一键智能激活解决方案
  • 2026年现阶段广东嵌入式酒柜服务公司怎么选?从产业格局到品牌甄选全解析 - 品牌鉴赏官2026
  • 扩散模型在时间序列生成中的应用与优化
  • 2026年新发布:新疆混凝土外加剂企业选择全攻略 - 品牌鉴赏官2026
  • 一周 AI Agent 工程前沿:从 GLM-5.2 到 Agent 治理,我看到了什么?
  • 2026嘉兴防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号