【题解】 P2734 [USACO3.3]游戏 A Game】的更多相关文章

\(\color{purple}{Link}\) \(\text{Solution:}\) 考虑区间\([l,r]\)的最优解.显然它可以由\([l+1,r]\)或\([l,r-1]\)转移而来.至此出现区间\(dp\)模型. 因为这个是求双方最优解,显然对于一段区间\([l,r]\),如果对手选择最优解,那么剩下的也是我们的最优解. 于是直接记忆花搜索即可.复杂度\(O(n^2).\) #include<bits/stdc++.h> using namespace std; int n,a[…
题目描述 校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球.第一个人只能放1个球,之后的人最多可以放前一个人的两倍数目的球,至少放1个球.最后面对没有空格而不能放球的人为输. 现在Red先走,问他有没有必胜的策略? 比如:N=4时,Red必胜. 输入格式 一行,一个整数N(2<N<100). 输出格式 一行,一个整数.如果Red必胜输出1,否则输出0. 输入样例 7 输出样例 0 题解 这里不好直接推公式,那我们就用d…
题目描述 校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球.每个人一次只能放1至5个球,最后面对没有空格而不能放球的人为输. 现在Red先走,问他有没有必胜的策略? 比如:N=6时,Red必败. 输入格式 一行,一个整数N(2<N<100). 输出格式 一行,一个整数.如果Red必胜输出1,否则输出0. 输入样例 9 输出样例 1 题解 先说结论,当$6|n$时,先手必输,否则先手必赢. 证明:当$6|n$时,先手放任…
题面 过长已遮挡 题意 体面已经陈述题意(这题没有考语文阅读理解) 题解 ** 我还记得我曾经给自己找的锅,给某些人讲课的时候说过一句话:体面越长的题,越简单.** 这句话没有错,我会用接下来解决这道题的思路过程,来证明这句话. 首先我们知道存在这么几种操作: a. 交换操作 b. 下沉操作 c. 消除操作 d. 搜索操作 e. 玩完判断 f. 拷贝操作(回溯) 这时候可以看得出来这里面除了搜索操作,剩余的操作都是模拟,我们只需要分出多个函数进行模拟就好了. 但是思路就是如此简单的一道题我却调了…
题面 题解 概率dp, 应该做得还是比较少的 设\(f[i][j]\)为该圈有\(i\)人时, 第\(j\)个人最后胜利的概率 枚举选择第几张卡牌, 设其值为\(card[k]\), 那么被淘汰的则是\(card[k] \% i\), 分类讨论 \(card[k] \% i < j\), 则\(f[i][j] = f[i][j] + f[i - 1][(j - (card[k] \% i + 1)-1] / m\) \(card[k]\%i > j\), 则\(f[i][j] = f[i][j…
洛谷题目 看到题面,很容易就想到,这是要你找树上的重心,只不过这个重心是在带边权的树上 所以对于这个我们在树上找这个重心 一开始我想的是,我要更新权值,然后把每个点的答案更新一下 就取最大值,这好像是O(....),我也不会算这个复杂度,好像太大了 后来去学习了一下,点分树:: 知道了有点分树这个东西,立刻就想到 如果我们在点分树上寻找这个带权重心,是不是就可以保证复杂度了??? 我先去打了板子,就是上一篇博客,一开始我就想用树状数组 然后我发现自己狭隘了,用树状数组根本维护不了每个点的军队数量…
这题是真的神仙啊...居然用的 stl 来卡常? 话说 998244353 真的可以一眼 NTT ? noteskey 所以说只要推柿子就好了但是有的地方的推导根本就想不到... 我们令第 t 个答案为 \(ANS_t\over nm\) ,除去 nm 其实就是算期望时要除去的方案数 那么有: \[\begin{aligned}{}ANS_t=&\sum_{i=1}^{n} \sum_{j=1}^m (a_i+b_j)^t \\=&\sum_{i=1}^{n}\sum_{j=1}^{m}\…
原题传送门 线性dp推一推就推出方程 设\(f[i][j]\)表示有\(j\)个人,分成\(i\)组,一共有多少分发 边界为\(f[0][0]=1\),珂以得出方程为\(f[i][j]=(j-1)*(j-2)*f[i-1][j-3]+(j-1)*f[i][j-1]\) #include <bits/stdc++.h> #define getchar nc using namespace std; inline char nc(){ static char buf[100000],*p1=buf…
原题目戳我 Solution: 这个二分图藏还是挺深的,重点在哪里呢?首先我们分析下,交换影响的会是哪里. 每一次交换只会影响某一行上的排列或者某一列上的排列,如果有矩阵是下面这样,就一定不会互相影响. 1 0 0 0 0   |   0 0 1 0 0 0 1 0 0   |   1 0 0 0 0 1 0 0 0   |   0 0 0 1 0 0 0 0 1   |   0 1 0 0 0 0 0 1 0   | 所以我们就只用找每一行每一列能不能匹配出一个完美的二分图,若不能就输出No…
原题目戳我 Solution: 方法很巧妙,我们把每个装备的属性 与 装备编号连起来 从1-10000跑二分图,如果出现断层,就退出,输出答案就好. memset清理bool快一点,int洛谷上超时了 板子题 Code: //It is coded by Ning_Mew on 3.14 #include<bits/stdc++.h> using namespace std; ; ,be[maxn]; bool vis[maxn]; ; struct Edge{ int nxt,to; }ed…