![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
z听歌的小孩z
这个作者很懒,什么都没留下…
展开
-
E. Cashback(dp+分块暴力查询区间最小值)
题目链接题意:给一段序列,你可以任意划分区间,每个区间去掉( k/m )个最小值,问怎样才能使这个序列值最小。k为划分的区间长度。题解:可以知道的是每m个元素就能去掉一个最小元素,所以可以使用分块或者数据结构来查询区间最小值。 dp[i]表示前i个元素能去掉的元素最大值。 然后给出状态转移方程:dp[i] = max(dp[i-1],dp[i...原创 2019-07-08 15:06:56 · 209 阅读 · 0 评论 -
2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)(部分题解)
比赛链接C.Contest Setting题意:有n个题目,每个题目有相应的难度等级。选择其中k个题目出一场比赛,要求一场比赛中不能出现相同难度的题目。问一共可以组多少场比赛。题解:一开始会自然而然的想到排列组合。但是下面这组数据,1 1 2 2 3 3 4 4 4,让你从中选两个不能重复的显然不好去排列组合求方案数。于是神奇的dp来了。首先题目难度的范围比较大,可以先离散化再计数...原创 2019-07-05 10:14:25 · 464 阅读 · 0 评论 -
Codeforces 837D D. Round Subset (DP)
题目链接题意:给你n个数,你可以从其中选取k个数相乘,使其末尾0个数最多,输出最大值。题解:首先我们可以知道,0的产生和 每个数因子 2 与 5 的个数有关。所以我们可以先预处理出每个数的 2 与 5 因子的个数。设状态转移方程 dp[i][j][z],表示前 i 个数选取了 j 个,恰好有z个5因子的2因子数量的最大值。0的个数就变成了min(dp[i][j][z],z);要把第...原创 2019-09-02 18:43:25 · 124 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)E . All men are brothers(并查集+线段树维护dp)
题目链接题意:有n个人互相不认识,m次操作给出x,y使x和y认识,间接认识也算认识。每次操作后问你有多少种方案使得从其中选取4个人互不认识。题解:互相认识的过程其实就是形成联通块的过程,这里我们可以使用并查集进行模拟。 然后我们得到一个个联通块,接下来就是排列组合了,每个联通块可以任选出一个人出来,与另外的联通块一起贡献答案。 设dp[i][j]表示前i个联通块选取j个人互不认识的...原创 2019-09-05 21:26:55 · 86 阅读 · 0 评论 -
Codeforces Round #589 (Div. 2) E. Another Filling the Grid (dp + 容斥)
题目链接题意:给你一个n * n 矩形,每个格子可以填一个小于等于k的数,要求每一行每一列都至少有一个1,求方案数。题解:这题难点在于怎么设状态转移方程,以及怎么转移,总之就是很难qwq设dp[i][j] 表示在第i行,有j列已经有1的方案数 那么就可以由第 i - 1列转移,也就是dp[i][j] 可以由 dp[i - 1][p] (1<=p<=j) 转移而来:分两种情...原创 2019-10-03 19:30:10 · 176 阅读 · 0 评论