当前位置: 首页 > news >正文

博弈论dp复习笔记

Stones

题目概述

集合 \(A\),小 \(X\) 和小 \(Y\) 选择其中一个数 \(x\),然后将石堆拿走 \(x\) 个,谁不能操作谁输,一开始石堆石头数量为 \(k\).

数据范围:\(1\leq k\leq 10^5,1\leq n\leq 100,1\leq a_i\leq 10^9\)

分析

\(f_i\) 表示到 \(i\) 时若再进行一次操作那他是必胜还是必败。

设后继集合 \(S_i\),有:

\[f_i=[\sum_{x\in S_i}[f_x]]\geq 1 \]

然后没了。

代码

时间复杂度 \(\mathcal{O}(nk)\),代码如下:

#include <iostream>
#include <stdlib.h>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>
#include <vector>
#include <cstring>
#define int long long
#define N 105
#define K 100005
using namespace std;
int sg[K],n,k,a[N];
signed main(){cin >> n >> k;int mn = 1e18;for (int i = 1;i <= n;i ++) scanf("%lld",&a[i]),mn = min(mn,a[i]);stable_sort(a + 1,a + 1 + n);for (int i = 0;i < mn;i ++) sg[i] = 0;for (int i = mn;i <= k;i ++) {sg[i] = 0;for (int j = 1;j <= n && a[j] <= i;j ++)sg[i] |= sg[i - a[j]] == 0;}if (sg[k]) puts("First");else puts("Second");return 0;
}
http://www.rkmt.cn/news/16987.html

相关文章:

  • 10.7阅读笔记
  • 多线程和网络总结
  • 详细介绍:ASR技术(自动语音识别)深度解析
  • 1.1 采样问题 Sampling and Bandits
  • 【题解】10.6 国庆中秋 提高组 热身赛
  • UCB-CS70个人笔记:至少和至多 - Zeeh
  • vscode使用“EIDE”和“Cortex-Debug”插件利用st-link插件达成程序烧写以及调试工作
  • C#中数据绑定的简单例子 - 详解
  • Spring Boot整合Druid与Dynamic-Datasource多数据源安装:从错误到完美解决
  • 用 Perl 实现验证码图像识别
  • cnblog Test
  • Claude 封杀中国后,我终于找到了平替!
  • pandoc使用
  • Exp2-后门原理与实践
  • DirectX-Graphics-Samples
  • 数学之美感悟。
  • 十所高校角逐对话式AI任务机器人挑战赛
  • SCIM漏洞挖掘实战指南
  • 虚拟文件系统
  • 代码随想录算法训练营第十天 | leetcode 232 225 20 1047
  • 2025冲压件厂家权威推荐榜:冲压件/新能源冲压件/光伏冲压件/精密冲压件/异形冲压件/五金冲压件/铝冲压件/汽配冲压件/不锈钢冲压件/家具冲压件厂家公司精密制造与品质保障实力之选
  • 简单搭建Ajax基础应用
  • 修改注册表,实现电脑小键盘开机自启(NumLock灯常亮)
  • 完整教程:nav2笔记-250603
  • 点云的遮挡剔除
  • 自制带得分和推荐走法的象棋视频
  • 深入解析:展会聚焦丨漫途科技亮相2025西北水务博览会!
  • 2025.10.7——2绿
  • 完整教程:无人机避障——感知部分(Ubuntu 20.04 复现Vins Fusion跑数据集)胎教级教程
  • 2025.10.6——1绿1蓝