上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 博弈论转化 本题的限制条件很多,我们尝试转化, 我们发现,定义 c[i] 为第 i 堆可以取得数量,如果第 i 堆取出了 x ,那么 c[i] x , c[i + 1] + x 我们发现这是一个反着的阶梯Nim,qwq 阅读全文
posted @ 2018-03-05 11:32 Mr_Wolfram 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 博弈论的转化 王晓珂的论文中的例题,论文的讲解已经非常详细了, 首先要了解一下take&break模型: 给定 n 堆石子, 每次要求取出不为零的一堆, 再放入两堆数目比取出的一堆严格小的石子(可以为 0 ) 不能操作的人输 暴力算SG值即可, SG[i] = mex{SG[j] ^ SG[k] , 阅读全文
posted @ 2018-03-04 21:44 Mr_Wolfram 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 博弈论+dp+概率 "提交链接" 题意不是很好懂 Ai 表示剩 i 个石头、 A 先手的获胜概率。 Bi 表示剩 i 个石头、 B先手的获胜概率。 如果想选,对于 Ai: 有 p 的概率进入 Bi−1 ;有 1−p 的概率进入 Bi 所以 fi=p∗Bi−1+(1−p)∗Bi 如果想选,对于 Bi: 阅读全文
posted @ 2018-03-04 16:21 Mr_Wolfram 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 博弈论+dp 依旧是博弈论的壳子,但问的是最大值,所以要dp 设 dp[i][j] 表示该取 i 号硬币,上一次取了 j 个的先手能取的最大值, 因为每次从小到大枚举复杂度太高,所以我们要从 dp[i][i 1] 转移,每次新加两个状态即可 cpp include include include i 阅读全文
posted @ 2018-02-28 21:38 Mr_Wolfram 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 博弈论+区间dp 有博弈论吗?大约只有一个博弈论的壳子 设 dp[i][j] 表示区间 i ~ j 先手最多能取多少, 它可以由 i ~ j 1 与 i + 1 ~ j 来转移, 等于上述两个区间中后手的最大值 + 选的数 cpp include include include include us 阅读全文
posted @ 2018-02-28 19:52 Mr_Wolfram 阅读(182) 评论(0) 推荐(0) 编辑
摘要: SG搜索 n的范围在可以接受的范围内,SG搜索即可 cpp include include include include include using namespace std; const int MAXN = 1000005; int init() { int rv = 0 , fh = 1; 阅读全文
posted @ 2018-02-28 16:43 Mr_Wolfram 阅读(198) 评论(0) 推荐(0) 编辑
摘要: Bash Game 看数据范围,这应该是一个 Bash Game ,我们就要寻找平衡点 通过手算找规律,得出平衡点可能是 6 首先我们可以得出 6 的任意倍一定不是质数的幂次,而且不论对方走到质数的多少幂次,总可以用 1 2 3 4 5 来补到最近的 6 的幂次 (完 阅读全文
posted @ 2018-02-28 15:47 Mr_Wolfram 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 博弈论基础 本题可以视作 "P2148 E&D" 的前置技能 本题直接判断奇偶性来求解, 证明就是2148 的证明 不贴代码 阅读全文
posted @ 2018-02-28 15:09 Mr_Wolfram 阅读(186) 评论(0) 推荐(0) 编辑
摘要: SG函数+状压记忆化搜索 观察题目发现,每一行都是独立的,只要处理出来每一行的SG值,异或起来就好 每一行的SG值可以用状压+记忆化搜索的方法来求,对位运算技术是个很大的考验 注意SG值要预处理出来,不能每次算 (WA的原因是 a数组在递归的过程中没有被清空,而是直接覆盖了,如果动态开数组就没有这样 阅读全文
posted @ 2018-02-27 16:21 Mr_Wolfram 阅读(178) 评论(0) 推荐(0) 编辑
摘要: SG函数的应用 首先每一组都是独立的,所以我们可以求出每一组的SG值异或出来。 那么怎么求每一组的SG值呢,网上的题解都是打表找规律,但其实这个规律是可以证明的 先看规律: x为奇数,y为奇数:SG=0 x为偶数,y为偶数:SG=SG(x/2 , y/2)+1 x为奇数,y为偶数:SG=SG((x+ 阅读全文
posted @ 2018-02-26 22:05 Mr_Wolfram 阅读(329) 评论(0) 推荐(0) 编辑
摘要: SG函数的应用 看到这题就想到了SG函数 那么可以考虑最终情况:一个数是x,另一个是0,那么先手必败(因为上一个人已经得到0了,其实游戏已经结束了) 剩下的情况:一个数n, 一个数m,假设n m 那么根据题意,SG(n,m)=mex{SG(n m, m), SG(n 2m, m), ......, 阅读全文
posted @ 2018-02-26 20:04 Mr_Wolfram 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 齐肯多夫定理: 任何正整数可以表示为若干个不连续的 Fibonacci 数之和。(常用与斐波那契数列有关的博弈) 用数学归纳证明 奇数乘奇数等于奇数 所以 6 一定不是任意质数的幂次 因为 6 不是 2 的幂次, 除了 2 的质数都是奇数 阅读全文
posted @ 2018-02-23 20:22 Mr_Wolfram 阅读(402) 评论(5) 推荐(2) 编辑
摘要: 二维单调队列 先横向跑一边单调队列,记录下每一行长度为n的区间的最值 在纵向跑一边单调队列,得出结果 注意,mi要初始化为一个足够大的数 cpp include include include include using namespace std; int init() { int rv = 0, 阅读全文
posted @ 2018-02-20 12:05 Mr_Wolfram 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 数据结构维护二维平面 首先横着切与竖着切是完全没有关联的, 简单贪心,最大子矩阵的面积一定是最大长 最大宽 此处有三种做法 1.用set来维护,每次插入操作寻找这个点的前驱和后继,并维护一个计数数组,来维护最大值 cpp include include include include include 阅读全文
posted @ 2018-02-19 09:35 Mr_Wolfram 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 线段树维护哈希值 要求出现长度大于三的等差子序列,我们只要找到长度等于三的就可以了 初看本题没有思路,只能暴力枚举,O(n^4) 后来发现,这个序列是n的一个排列,那么每个数字都只会出现一次 我们可以维护一个 $01$ 序列 B ,表示某个数字是否出现过, 然后我们从左往右枚举等差中项x并将该项在B 阅读全文
posted @ 2018-02-18 15:32 Mr_Wolfram 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 主席树可以存储线段树的历史状态,空间消耗很大,一般开45n即可 cpp include include include include include include define lson l, mid define rson mid+1, r define ll long long using 阅读全文
posted @ 2018-02-17 22:39 Mr_Wolfram 阅读(176) 评论(4) 推荐(0) 编辑
摘要: 离线扫描线+查分+线段树 我们发现,这个题的询问都是离线的,所以我们尝试用离线扫描线的方法来处理 对于每一次操作,我们维护一个差分数组, 在询问的时候,我们用一根扫描线,从左往右扫,并用线段树维护,每种礼物的次数, 每扫到一个人,先处理在这个人处的操作,然后查询最大值即可 cpp include i 阅读全文
posted @ 2018-02-14 21:56 Mr_Wolfram 阅读(160) 评论(3) 推荐(0) 编辑
摘要: 题目描述 你有一个长度为 $n$ 的数列 $\{a_n\}$ ,这个数列由 $0,1$ 组成,进行 $m$ 个的操作: $1\ l\ r$ :把数列区间$ [l,r]$ 内的所有数取反。即 $0$ 变成 $1$ ,$1$ 变成 $0$ 。 $2\ l\ r$ :询问数列在区间 $[l, r]$ 内共 阅读全文
posted @ 2018-02-13 21:53 Mr_Wolfram 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 最大权闭合子图,神题 这不是线性代数,这是网络流。 我们看见这是一堆矩阵的运算,而且最后变成了一个数,那么我们就想到,把这个矩阵乘法的过程用具体的数字推出来 我们发现,a是一个01矩阵,然后其实就可以化成这么一个问题: 有n个东西,选了i,j两件东西能得到b[i,j]的价值,然而选i需要c[i]的花 阅读全文
posted @ 2018-02-11 21:37 Mr_Wolfram 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 类似筛法的思想 本题实际上就是反推hash的模数, 首先想到枚举k,但显然会超时。 $a mod k==b mod k k|(a b) $ 由同余的定义可以知道 所以我们的任务就变成的找到一个整数k使其不是任意一个 $ a b $ 的因子, 观察一下数据范围可以发现,我们可以预处理出所有的a b,并 阅读全文
posted @ 2018-02-08 10:40 Mr_Wolfram 阅读(182) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页