博弈论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\),有:
\]
然后没了。
代码
时间复杂度 \(\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;
}
Deque
题目概述
一个序列 \(A\),小 \(X\) 和小 \(Y\) 从两边取数,并累积到自己的得分中,两个人都十分聪明,求最后的小 \(X\) 分数减去小 \(Y\) 分数的值。
数据范围:\(1\leq n\leq 10^3,1\leq a_i\leq 10^9\)。
分析
经典题目。
牛了,其实是区间 \(dp\)。
设 \(f_{i,j}\) 表示只在区间 \([i,j]\) 完的最大得分(相减之后)。
转移就 \(\mathcal{O}(1)\) 了。
代码
时间复杂度 \(\mathcal{O}(n^2)\)。
#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <cstring>
#include <algorithm>
#include <vector>
#define int long long
#define N 3005
using namespace std;
int n,a[N];
int f[N][N];
signed main(){
cin >> n;
for (int i = 1;i <= n;i ++) scanf("%lld",&a[i]);
for (int i = 1;i <= n;i ++) f[i][i] = a[i];
for (int len = 2;len <= n;len ++)
for (int i = 1;i + len - 1 <= n;i ++) {
int j = i + len - 1;
f[i][j] = max(a[i] - f[i + 1][j],a[j] - f[i][j - 1]);
}
cout << f[1][n];
return 0;
}
博弈论dp复习笔记的更多相关文章
- 状压DP复习笔记
前言 复习笔记第4篇.CSP RP++. 引用部分为总结性内容. 0--P1433 吃奶酪 题目链接 luogu 题意 房间里放着 \(n\) 块奶酪,要把它们都吃掉,问至少要跑多少距离?一开始在 \ ...
- 斜率优化DP复习笔记
前言 复习笔记2nd. Warning:鉴于摆渡车是普及组题目,本文的难度定位在普及+至省选-. 参照洛谷的题目难度评分(不过感觉部分有虚高,提高组建议全部掌握,普及组可以选择性阅读.) 引用部分(如 ...
- 数位DP复习笔记
前言 复习笔记第五篇.(由于某些原因(见下),放到了第六篇后面更新)CSP-S RP++. luogu 的难度评级完全不对,所以换了顺序,换了别的题目.有点乱,见谅.要骂就骂洛谷吧,原因在T2处 由于 ...
- tarjan复习笔记
tarjan复习笔记 (关于tarjan读法,优雅一点读塔洋,接地气一点读塔尖) 0. 连通分量 有向图: 强连通分量(SCC)是个啥 就是一张图里面两个点能互相达到,那么这两个点在同一个强连通分量里 ...
- 树的直径,LCA复习笔记
前言 复习笔记第6篇. 求直径的两种方法 树形DP: dfs(y); ans=max( ans,d[x]+d[y]+w[i] ); d[x]=max( d[x],d[y]+w[i] ); int di ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
随机推荐
- 神奇的LLVM与llvmlite之JIT编译。
https://releases.llvm.org/11.0.0/docs/LangRef.html llvmlite Documentation, Release 0.41.0dev0-64-gbb ...
- Phenomenon•uncertainty•Process and Outcome•Random与Stochastic•Probability概率•条件概率•条件独立与相互独立
Phenomenon现象 uncertainty不确定性 Process过程 and Outcome结果 Random随机,包含多种多样的Distribution; Stochastic常指满足Ran ...
- USB(2.0 / Type-C) to MPSSE(JTAG / SPI / IIC) / UART / FIFO: FTDI 的FT4232H配成SPI+JTAG+Two Ways UART使用实例
1 pcs. FTDI FT4232H (Four Channels): Channel 0: 1 way SPI Interface Channel 1: 1 way JTAG Interface ...
- 理论的动态发展完完备与进化:数论Number Theory数域的进化史 与 Infinite Precision无限精度+Infinite Approximation无穷近似
Infinite Precision: https://blogs.ubc.ca/infiniteseriesmodule/units/unit-1/infinite-series/convertin ...
- Win10纯净版无法打开图片提示错误的问题
有一位深度系统的win10纯净版用户,在打开一些图片无法正常的显示出来,而是显示了黑色的界面.遇到这个问题我们会无法预览图片的具体内容,影响非常大.那么接下来我们就来看看深度技术小编如何解决这个问题的 ...
- 解锁音频创作新可能:AI 人声伴奏分离神器 Replay 深度解析
在音频创作.编辑以及日常娱乐的世界里,我们常常会遇到这样的难题:想要某首歌曲的纯净伴奏用于翻唱,或是想从一段视频中提取清晰人声素材,传统方法要么复杂繁琐,要么效果差强人意.不过,现在有了一款名为Rep ...
- Java学习:Java与C++数组初始化全对比
Java初始化数组和C++初始化数组的区别 1)初始化 a. 静态初始化 Java 的静态初始化在声明时直接赋值,适用于已知初始值的情况.语法简洁,无需指定数组大小(编译器自动推断). // 一维数组 ...
- Web前端入门第 83 问:JavaScript localStorage 有大小限制吗?溢出会怎样?
本地存储除了 Cookie 外,还有 localStorage 和 sessionStorage,本文一探 localStorage. localStorage 此 API 存入的数据会 永久 保存在 ...
- Java集合——5.编写hashCode方法
目录 Java中的hashCode方法 hashCode()方法原理 equals与hashCode的约定 hashCode()工作流程 哈希冲突 正确实现hashCode方法 使用Objects.h ...
- 关于ubuntu没有声音的一种解决办法
刚安装了最新的ubuntu18,向在Chrome上听歌,却没有声音. 在网上查了下终于找到解决办法,如第一行参考. 在终端输入命令安装 pavucontrol #sudo apt install pa ...