
其它DP
_Ark
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
省选模拟赛 题解 T1 质数拆分 (背包DP预处理+组合数)
S≤2000000,n≤1018,q≤105S\le 2000000,n \le 10^{18},q\le10^5S≤2000000,n≤1018,q≤105题解显然可以发现,只有SSS为无平方因子数才可能有解。假设S=∏i=1mpiS=\prod_{i=1}^mp_iS=∏i=1mpi,pip_ipi均为质数。那么m≤8m\le8m≤8(前888小的质数乘起来一定大于SSS)。那么问...原创 2020-01-30 16:34:24 · 575 阅读 · 0 评论 -
「GXOI / GZOI2019」宝牌一大堆 (DP)
题意LOJ传送门题解可以发现「七对子」 和 「国士无双」直接暴力就行了。唯一的就是剩下的"3*4+2"。考试的时候写了个爆搜剪枝,开了O2有50pts。写的时候发现可以DP,但是没写。然后下来写了发现就4个转移。。。用dp[i][j][k][a][b][c]dp[i][j][k][a][b][c]dp[i][j][k][a][b][c]表示当考虑前iii张牌,有jjj个雀头,kkk个...原创 2019-12-14 17:01:08 · 263 阅读 · 0 评论 -
CSP模拟赛 Matrix(DP)
题面求出满足以下条件的 n*m 的 01 矩阵个数:(1)第 i 行第 1~li 列恰好有 1 个 1。(2)第 i 行第 ri~m 列恰好有 1 个 1。(3)每列至多有 1 个 1。n,m<=3000题解nbCODE#include <bits/stdc++.h>using namespace std;const int MAXN = 3005;con...原创 2019-10-23 22:51:08 · 623 阅读 · 0 评论 -
BZOJ 4559 [JLoi2016]成绩比较 (DP+拉格朗日插值)
题意BZOJ4559题解看这,写得真好。CODE#include <bits/stdc++.h>using namespace std;const int MAXN = 105;const int mod = 1e9 + 7;int n, M, K, U[MAXN], R[MAXN], c[MAXN][MAXN], f[MAXN][MAXN];inline i...原创 2019-09-21 16:49:11 · 201 阅读 · 0 评论 -
BZOJ 1899: [Zjoi2004]Lunch 午餐 DP
题意n个人,每个人有打饭时间和吃饭时间,有两个打饭队列,求最后一个人吃完饭的时间最小值。n,吃饭时间,打饭时间 <= 200题解发现数据范围小,可以想到n^3算法。首先对于一个队列,内部顺序一定是吃饭吃的慢的放在前面。所以先按b从大到小排序。设f[i][j]表示前i个人,1号队列总打饭时间为j时的 最慢的人吃完的时间。答案就是f[n][j]的最小值。设a为打饭时间,b为吃饭时间...原创 2019-10-04 11:57:19 · 265 阅读 · 0 评论 -
BZOJ 1820: [JSOI2010]Express Service 快递服务 DP
题意略题解这里用nnn表示地点数,mmm表示要送的快递数。很容易想出O(n3m)O(n^3m)O(n3m)的算法,就是把333个点状态存下来。可是过不了。但是可以省略一维,因为一定有一个车在上一个地点。所以就简单了。CODE不一定要保证状态f(i,j)f(i,j)f(i,j)中i<ji<ji<j#pragma GCC optimize (2)#include...原创 2019-10-04 15:15:03 · 214 阅读 · 0 评论 -
BZOJ 1190: [HNOI2007]梦幻岛宝珠 背包DP
题意大背包问题物品重量可写成a*2^b的形式(1<=a<=10,0<=b<=30)题解1直接背包肯定TLE+MLE考虑到每个weight都能写成a*2^b的形式,显然我们要按照b分层来进行背包令f[i][j]表示有j*2^i+(w&(1<<i)-1)的空间时的最大价值首先每层内部先做一个01背包,因为a<=10,n<=100,所...原创 2019-10-04 17:20:56 · 229 阅读 · 0 评论 -
BZOJ 2699: 更新 (DP)
题目对于一个数列A[1…N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值。假设所有数都在范围[1, K]内,按上面的步骤执行,有多少个长度N的数列满足A[1]被更新的次数恰好为P呢?N,P<=150,K<=300题解感觉数据组数有点多,其实可以直接预处理出所有答案。定义f[i][...原创 2019-10-06 22:39:17 · 707 阅读 · 0 评论 -
BZOJ 1181: [CROATIAN2009] IZBROI选举(二分+dp)
题面在一个地区的选举中,共有V个人参加了投票,每一票只可能投给N个政党中的一个。当地的议会共有M个席位。不妨将N个政党编号为1到N,并且设编号为i的政党最终的得票为Vi,则议会中的席位按如下规则分配: 1、将得票数小于总选票的5%的政党剔除。 2、初始时议会为空,每个政党都只有0个席位。 3、对于每个政党P,计算一个参数Qp = Vp / (Sp + 1),Vp为政党P的最终得票,Sp为政党P当...原创 2019-10-11 19:38:45 · 243 阅读 · 0 评论 -
BZOJ 2111 / Luogu P2606 [ZJOI2010]排列计数
题意称一个1,2,...,N1,2,...,N1,2,...,N的排列P1,P2...,PnP_1,P_2...,P_nP1,P2...,Pn是MagicMagicMagic的,当且仅当2<=i<=N2<=i<=N2<=i<=N时,Pi>Pi/2P_i>P_{i/2}Pi>Pi/2. 计算1,2,...N1,2,...N1,2,.....原创 2019-09-21 13:27:47 · 189 阅读 · 0 评论 -
BZOJ 2339 [HNOI2011]卡农(组合计数)
orz GXZlegend的博客讲的好!!CODE#include <bits/stdc++.h>using namespace std;const int MAXN = 1000005;const int mod = 100000007;int n, m, P[MAXN], f[MAXN];inline int qmul(int a, int b) { int re...原创 2019-09-15 10:49:00 · 194 阅读 · 0 评论 -
BZOJ 2213: [Poi2011]Difference (DP)
题意求一段区间内最大字母出现次数-最小字母出现次数的最大值。题解考虑f[i][j]f[i][j]f[i][j]代表当前字符iii减去字符jjj的个数…那么答案为maxf[r][i][j]−f[l−1][i][j]\max f[r][i][j]−f[l−1][i][j]maxf[r][i][j]−f[l−1][i][j]当右端点从xxx变为x+1x+1x+1的时候最多改变525252个值...原创 2019-09-14 13:30:04 · 254 阅读 · 0 评论 -
【DP】 路面修整 usaco 2008 feb_gold
题目描述:```FJ打算好好修一下农场中某条凹凸不平的土路。按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同时出现在修好的路中。 整条路被分成了N段,N个整数A_1, ... , A_N (1 <= N <= 2,000)依次描述了每一段路的高度(0 <= A_i <= 1,000,000,000)。FJ希望...原创 2017-07-20 17:07:34 · 645 阅读 · 0 评论 -
完美字符子串 单调队列预处理+DP线段树优化
题意:有一个长度为n的字符串,每一位只会是p或j。你需要取出一个子串S(注意不是子序列),使得该子串不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个数。如果你的子串是最长的,那么称之为完美字符子串。求完美字符子串的长度。乍一看比较水,然而差点没想出来。考虑处理前缀和,p+1 j-1 那么对于一段区间[l,r]只要每一个i∈[l,r]满足presum[i]-presu...原创 2018-08-23 21:32:51 · 334 阅读 · 1 评论 -
【NOIP2017】逛公园 D1 T3
记忆化搜索跑一次反向的最短路求出MinDis(u,n)MinDis(u,n)MinDis(u,n)f[u][k]f[u][k]f[u][k]表示dis(u,n)&amp;amp;amp;amp;lt;=MinDis(u,n)+dis(u,n)&amp;amp;amp;amp;lt;=MinDis(u,n)+kdis(u,n)&amp;amp;amp;amp;lt;=MinDis(u,n)+dis(u,n)&amp;amp;amp;amp原创 2018-11-06 22:25:31 · 291 阅读 · 0 评论 -
【NOIP2015】斗地主 D1 T3 及 增强版 (送命题)
暴搜顺子,DP预处理剩下的。由于官方数据太水,很多情况没有讨论的都能过普通版本,想要测试自己代码的正确性的同学们可以交交这道题 Luogu P2540 斗地主增强版 传送门#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;using namespace std;const int MAXN = 25;int n, cnt[15], p[5], Ans, dp[6][8][12]...原创 2018-11-07 21:56:09 · 429 阅读 · 0 评论 -
51nod 1850 抽卡大赛 (十二省联考模测) DP
O(n4)O(n^4)O(n4)的DP很好想,但是过不了.来看看O(n3)O(n^3)O(n3)的把. Freopen的博客CODE#include <cstdio> #include <cstring>#include <algorithm>using namespace std;const int MAXN = 205;const int mo...原创 2019-03-24 21:34:43 · 278 阅读 · 0 评论 -
51nod 1989 竞赛表格 (爆搜+DP算方案)
题意自己看分析其实统计出现次数与出现在矩阵的那个位置无关.所以我们定义f(i)f(i)f(i)表示iii的出现次数.那么就有转移方程式f(i)=1+∑j+rev(j)=if(j)f(i)=1+\sum_{j+rev(j)=i}f(j)f(i)=1+j+rev(j)=i∑f(j)但是这样的话jjj可以取的值太多了,无法DP,怎么办呢?题解给出了巧妙的优化.我们只考虑那些形如"x+rev(x)...原创 2019-03-19 10:49:57 · 258 阅读 · 0 评论 -
BZOJ 4032: [HEOI2015]最短不公共子串 (dp*3 + SAM)
转博客大法好第4个子任务中,为什么只转移最近的一个位置,自己YY吧(多YY有益身体健康).#include <bits/stdc++.h>using namespace std;typedef long long LL;template<class T>inline void read(T &num) { register char ch; reg...原创 2019-04-01 12:33:19 · 218 阅读 · 0 评论 -
51nod 1843 排列合并机(DP+组合)
题解链接不过求ggg不用O(n2)DPO(n^2)DPO(n2)DP,g[n]g[n]g[n]直接就是卡特兰数的第n−1n-1n−1项。即:g[n]=(2(n−1)n−1)−(2(n−1)n−2)g[n]=\binom{2(n-1)}{n-1}-\binom{2(n-1)}{n-2}g[n]=(n−12(n−1))−(n−22(n−1))相当于在平面直角坐标系中,要从(0,0)(0,0)...原创 2019-07-26 17:17:11 · 220 阅读 · 0 评论 -
【DP】花店橱窗布置
花店橱窗布置(flower.cpp)题目描述假设你想以最美观的方式布置花店的橱窗。你有F束花,每束花的品种都不一样,同时,你至少有同样数量的花瓶,被按顺序摆成一行。花瓶的位置是固定的,并从左至右,从1至V顺序编号,V是花瓶的数目,编号为1的花瓶在最左边,编号为V的花瓶在最右边。花束则可以移动,并且每束花用1至F的整数唯一标识。标识花束的整数决定了花束在花瓶中排列的顺序,即如果I<j...原创 2016-11-10 13:34:30 · 2067 阅读 · 0 评论