
DP
文章平均质量分 65
KsCla
这个作者很懒,什么都没留下…
展开
-
UOJ#348:【WC2018】州区划分 (FMT优化DP)
题目传送门:http://uoj.ac/problem/348题目分析:题面就是要求将n个点划分为若干个集合,使得刚好包含某个集合的点以及它们之间的边的子图不存在欧拉回路。然后题面给出了一种方法计算某种方案的贡献。由于n很小,不妨先用h[s]表示s中的点能不能刚好划分为一个集合。算出h[]的时间是O(n22n)O(n22n)O(n^22^n)的。对于题面给出的式子,我们发现每个集合的贡...原创 2018-04-17 22:06:42 · 873 阅读 · 1 评论 -
SPOJ FTOUR2 (平衡树+启发式合并/点分治)
vjudge题面传送门:https://cn.vjudge.net/problem/SPOJ-FTOUR2题目大意:给出一棵n个节点的树,将其黑白染色。求经过不超过k个节点的路径权值和的最大值。n<=200000n<=200000nf[node][num]f[node][num]f[node][num]表示节点node向下走,经过刚好num个黑点的最大权值,转移的时候显然有: ...原创 2018-03-07 14:25:03 · 425 阅读 · 0 评论 -
BZOJ3992:[SDOI2015]序列统计 (NTT+倍增+DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3992题目分析:“如果一道题的模数是998开头的那个费马素数,那它多半不是NTT。如果模数是1004开头的,那它基本上就是NTT了。”——tututu我们可以将长度为n的这个序列分成两段,分别算出前半段和后半段乘积模m等于0~m-1的方案数,记进f和g数组。然后令f[i]∗g[...原创 2018-02-12 22:41:08 · 483 阅读 · 0 评论 -
LOJ6301:「CodePlus 2018 3 月赛」白金元首与莫斯科 (类插头DP)
题目传送门:https://loj.ac/problem/6301题目分析:比赛的时候乱写了个O(n2m3m)O(n2m3m)O(n^2m3^m)的状压DP,结果只拿了14pts。当时我还在想怎么才能拿第一个点的那10pts,要不要再写一个另外的算法。后来发现由于n<mn<mnn,mn,mn,m,稍微处理一下就好了QAQ。赛后30min发现自己还能写O(n3m)O(n3m)O(...原创 2018-03-06 19:52:18 · 434 阅读 · 0 评论 -
Codeforces Round #445 Div1 E:Mod Mod Mod (平衡树优化DP)
题目传送门:http://codeforces.com/contest/889/problem/E题目大意:有一个长度为n的序列a。定义函数f(x,n)f(x,n)值为xmodanx \mod a_n。并定义函数f(x,i)(1<=i<n)f(x,i)(1<=i<n)值为xmodai+f(xmodai,i+1)x \mod a_i+f(x \mod a_i,i+1)。求最大的f(x,1)f(x,1)原创 2017-12-17 20:42:28 · 771 阅读 · 0 评论 -
Codeforces Round #445 Div1 C:Maximum Element (组合数学+DP)
题目传送门:http://codeforces.com/contest/889/problem/C题目大意:有一个函数,传一个长度为n的数组a进去,并设计一个参数k,它会用以下方式帮你找最大值:从左往右扫a,并记录当前最大值。如果变更完当前最大值之后,再扫连续的k个元素,当前最大值都没有变(或者扫完了a),它就会直接返回当前最大值。现在给定n,k,你要输出有多少个1~n的排列a,会使得这个函数不返回原创 2017-12-11 22:21:24 · 415 阅读 · 0 评论 -
BZOJ1004:[HNOI2008]Cards (Burnside引理+DP+Exgcd)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1004题目分析:最近我总是在省选题中找题目做,结果遇到各种奇奇怪怪的坑。这题的题面告诉我们,如果某个状态可以通过一次洗牌到达另一种状态,就从这种状态向另一种状态连一条有向边,那么最终的图一定全部是双向边,并且所有的状态组成了一些团。团的个数即为答案。现在的问题是如何求出团的个数?我自己的想法原创 2017-11-22 20:55:23 · 462 阅读 · 0 评论 -
洛谷P1295:[TJOI2011]书架 (线段树优化DP)
题目传送门:https://www.luogu.org/problemnew/show/P1295题目分析:这题是我在NOIP之前看到的,那个时候我们机房人人都在刷这题,而我因为在颓,就只好事后填坑啦。 按tututu的话来说,“这题不难想,其实怎么做都可以”,主要是因为有很多单调性。首先O(n2)O(n^2)的DP很好推,记f[i]表示以第i本书为某一层结尾时,书架的最小高度。很明显:f[i]=原创 2017-11-20 17:24:36 · 1154 阅读 · 0 评论 -
NOIP2016模拟赛 运 (DP+逆元)
运【问题背景】zhx和妹子们玩数数游戏。【问题描述】仅包含4或7的数被称为幸运数。 一个序列的子序列被定义为从序列中删去若干个数,剩下的数组成的新序列。 两个子序列被定义为不同的当且仅当其中的元素在原始序列中的下标的集合不相等。对于一个长度为N的序列,共有2N2^N个不同的子序列。(包含一个空序列)。 一个子序列被称为不幸运的,当且仅当其中不包含两个相同的幸运数。 对于一个给定序列,求其中原创 2017-09-30 15:45:14 · 570 阅读 · 0 评论 -
Codeforces 553E:Kyoya and Train (最短路+概率DP+分治+FFT)
题目传送门:http://codeforces.com/contest/553/problem/E题目大意:给出一幅n个点m条边的有向图,并给出参数T,你要从1号点走到n号点。经过每一条边都要花费时间和金钱,第i条边需要花费cost[i]的金钱,并且经过该边花费时间为t的概率是p[i][t](1<=t<=T)p[i][t](1<=t<=T)p[i][t](1f[u]...原创 2018-02-16 01:43:34 · 658 阅读 · 0 评论 -
BZOJ3572:[Hnoi2014]世界树 (虚树+树形DP+倍增)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3572题目分析:最近跟着tututu入坑虚树,就做了这道题。虚树教程:https://www.cnblogs.com/zzqsblog/p/5560645.html虚树大概的思想就是:如果每次询问给出一个点集,在原先的树上跑一遍求答案代价太大,我们可以尝试着构造一个棵小一点...原创 2018-03-01 14:32:27 · 420 阅读 · 0 评论 -
BZOJ2286:[Sdoi2011]消耗战 (虚树+树形DP+倍增)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2286题目分析:把虚树建出来,虚树上边的权值=对应链上的最小值。然后如果某个点是关键点,就一定要割掉其父边;否则可以选择割父边,也可以选择让其儿子自行处理。时间复杂度O((n+∑k)log(n))O((n+∑k)log(n))O((n+\sum{k})\log(n))。我发现...原创 2018-03-01 20:37:08 · 381 阅读 · 0 评论 -
BZOJ4767:两双手 (组合数学+DP+容斥原理)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4767题目分析:一开始看题目名还以为是两只手,后来感觉有些不对劲……题面保证了给出的两个向量叉积为0,就是说它们不平行。不平行的两个向量可以作为一组基底,这样原先平面上的所有点就获得了一个新坐标。于是问题变成了:从(0,0)走到(n,m),中间不能经过指定的k个点,求方案数。...原创 2018-03-29 16:28:10 · 1008 阅读 · 0 评论 -
BZOJ4710:[Jsoi2011]分特产 (容斥原理+组合数学+DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4710题目分析:一开始看完全没有头绪,后来发现这不就是个和第二类stirling数很像的容斥吗?首先考虑没有“每个人至少要拿一个特产”这个条件怎么做。由于不同的特产之间是独立的,可以记h[i][j]表示前i个人拿了j件特产的方案数。转移方程为h[i][j]=∑jk=0h[i−1...原创 2018-03-28 10:54:59 · 469 阅读 · 0 评论 -
BZOJ1042:[HAOI2008]硬币购物 (容斥原理+DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1042题目分析:我看某个课件看到这题,一开始还以为每组询问都重新给出四个面值,导致我一直没有思路QAQ。由于四个面值是固定的,可以先做一次完全背包,将价值为1~maxs的答案记下来。每次询问的时候,记f(s)表示 只有 s集合中的硬币超过限制的方案数,记g(s)表示 至少有 s...原创 2018-03-28 09:23:41 · 573 阅读 · 0 评论 -
BZOJ4008:[HNOI2015]亚瑟王 (概率DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4008题目分析:一道很厉害的DP,做法和背包类似。记g[i][j]表示前i张卡牌,有j张卡牌发动了技能的概率,那么存在如下转移:g[i+1][j]=g[i][j]∗(1−p[i+1])r−jg[i+1][j]=g[i][j]∗(1−p[i+1])r−jg[i+1][j]=g[i...原创 2018-03-27 15:58:42 · 455 阅读 · 0 评论 -
BZOJ1444:[Jsoi2009]有趣的游戏 (AC自动机+概率DP+高斯消元)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1444题目分析:首先考虑静态的问题:如果已经生成一个字符串,如何让它跟所有模式串匹配?答案是建出所有模式串的AC自动机,然后让生成串在上面跑,如果跑到某个有endpos的节点就一直停在那里。然后考虑动态的问题:如果生成串无限长,如何求出它停在每个节点的概率?把AC自动机扩展成T...原创 2018-03-27 11:11:54 · 515 阅读 · 0 评论 -
BZOJ3143:[Hnoi2013]游走 (高斯消元+概率DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3143题目分析:很久之前就对这种高斯消元解DP值的题目有一种莫名的恐惧,因为它明明是DP却没有递推顺序因为我对概率论一窍不通。学了高消之后,我YY了一下这题的DP方程,发现一直过不了样例。最后居然被tututu在旁边随便口胡一句就过了?!本题要让我们自定每条边的权值,所以我们想...原创 2018-03-26 21:26:43 · 719 阅读 · 0 评论 -
洛谷P4067:[SDOI2016]储能表 (数位DP)
题目传送门:https://www.luogu.org/problemnew/show/P4067题目分析:一道令我心态爆炸的数位DP。一调调一天,WA不花一分钱先说一下我理解的数位DP是什么。数位DP本质上还是个DP,它里面有很多重复的子问题。但现在题面给了DP的下标一个上界限制,而我们不能直接枚举下标,所以要贴着这个上界限制来DFS。形象地做个比喻就是走楼梯,DFS的时候要紧贴着楼...原创 2018-03-22 08:39:20 · 495 阅读 · 0 评论 -
BZOJ2159:Crash 的文明世界 (第二类stirling数+组合数学+树形DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2159题目分析:先说一下部分分怎么拿。20%20%20\%:直接以每个点为根DFS一遍,求出其它点的深度。预处理1k1k1^k~nknkn^k统计答案。时间复杂度O(n2+nk)O(n2+nk)O(n^2+nk)。50%50%50\%:令S[node][d]=∑u∈node...原创 2018-03-20 08:20:58 · 443 阅读 · 0 评论 -
洛谷P4253:[SCOI2015]小凸玩密室 (DP)
题目传送门:https://www.luogu.org/problemnew/show/P4253题目分析:模拟赛的时候因为T2的锅,就没仔细想这题,写了个20pts的暴力状压还错了。后来改的时候发现我的code在跳到当前节点i的第一个子树未满的祖先j时,忘记查看j自身是否被点亮了QAQ。这题的正解其实也不难,主要是一些细节比较烦。由于题面给出的本身就是棵二叉树,可以直接记f[node...原创 2018-03-19 15:37:38 · 557 阅读 · 0 评论 -
count (类插头DP+矩阵快速幂)
题目大意:有n个点,编号为1~n。第i个点和第j个点之间有一条无向边当且仅当|i-j|<=k。求这个图的生成树个数。k≤5,n≤1015k≤5,n≤1015k\leq 5,n\leq 10^{15}。题目分析:Coming在他初二时的资料里找到的一道题,是我校上古大神cdc给的。我不得不吐槽:难道前几届的dalao初二就能做这种题了吗?而且题面还很恶意地给出了怎么用矩阵树定理算无向图...原创 2018-03-22 20:19:00 · 375 阅读 · 0 评论 -
BZOJ3162:独钓寒江雪 (Hash判断树同构+树形DP+组合数学)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3162题目分析:一道很厉害的题,让我知道原来Hash还可以判断两棵树的形态是否相同。这题的具体做法还是看VFK的题解吧,我表示只能orz。用简单的话概括一下题解的内容就是:1.定义重心为树的直径的中点。如果树的直径长度为偶数,就在最中间的边上加一个虚点作为重心。 2.以重...原创 2018-03-16 11:16:22 · 496 阅读 · 0 评论 -
hdu5909:Tree Cutting (FWT/点分治优化树形DP)
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5909题目大意:给出一棵树,每个节点的权值都在[0,m)[0,m)[0,m)内。现在对于每个v∈[0,m)v∈[0,m)v\in[0,m),你都应给出权值为vvv的至少有一个点的子连通块个数。一个连通块的权值定义为其所有点的权值异或和。答案模109+7109+710^9+7,多组数据。...原创 2018-03-15 21:33:10 · 431 阅读 · 0 评论 -
Tyvj4876:骰子游戏 ((FFT/NTT)+倍增+DP)
题目传送门:http://tyvj.cn/p/4879题目分析:其实这题我并没有AC(因为我没写过NTT),只是觉得这还是道不错的DP,就记录一下。骗访问量 读完题之后可以发现第一段话是废话,令x减去小A手中y点数的个数,问题就变成了:有n个人,每个人有m个骰子,所有点数为y的骰子的个数大于等于x的方案有多少种?考虑到一个人手中的骰子为{1,1,2}和{1,2,1}视作同一种方案,不妨先预处理出一原创 2017-09-30 14:51:16 · 625 阅读 · 0 评论 -
洛谷P3172:[CQOI2015]选数 (DP+数论)
题目传送门:https://www.luogu.org/problem/show?pid=3172题目分析:我也不想说什么了,把一道简单的题想复杂了。一开始想错思路,以为提取出k和k平方的个数,两次组合数搞容斥。结果发现错的离谱(2k,3k等情况没有讨论)。然后想莫比乌斯反演(好像时间过不去呀),而且我也不知道怎么log(n)求组合数(因为不能预处理阶乘到n),还上网看了个log(n)求阶乘,原创 2017-06-12 14:09:31 · 456 阅读 · 0 评论 -
hdu3341:Lost's revenge (AC自动机+DP)
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3341题目大意:有不超过50个模式串,每个模式串长度不超过10。现在给出一个长度不超过40的串,要求将其重组(即可以打乱字符的顺序),最大化其得分。一个串的得分为:第一个模式串在该串中出现的次数+第二个模式串在该串中出现的次数……,其中每一个模式串可以重叠,如AAA中AA出现了两次。所有串中只原创 2017-05-06 23:17:50 · 487 阅读 · 0 评论 -
hdu2196:Computer (树形DP)
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2196题目大意:给定一个无根树,每一条边有长度,输出以每一个点为根时,树上的点到根的距离的最大值。多组数据。题目分析:首先我们可以很容易地想出O(n^2)的算法:以每一个点为根进行一次DFS,同时维护一棵以node为根的子树内所有节点到node距离的最大值。然而我们来想一下更优的算法:假设原创 2017-05-04 09:20:27 · 1054 阅读 · 0 评论 -
noip2016 Day2 T3:愤怒的小鸟 (状压DP+二进制压位)
题目描述Kiana最近沉迷于一款神奇的游戏无法自拔。简单来说,这款游戏是在一个平面上进行的。有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y=ax^2+bx的曲线,其中a,b是Kiana指定的参数,且必须满足a。当小鸟落回地面(即x轴)时,它就会瞬间消失。在游戏的某个关卡里,平面的第一象限中有n只绿色的小猪,其中第i只小原创 2016-12-08 21:47:34 · 2020 阅读 · 0 评论 -
Tyvj4878:道路修建 (环套树DP+单调队列)
题目传送门:http://tyvj.cn/p/4878题目分析:刚看题以为很简单,想着直接在每一个外向树上跑最长路,再随便搞搞跨环的最长路就行了。然而仔细分析发现跨环的最长路并不是那么好搞,还要用到单调队列优化…… 首先外向树上的最长路就和求树的直径一样,以任一点为根DFS,再用深度最大的点为根DFS,第二次DFS的最大深度值即为树的直径;或者也可以用类似DP的写法。再考虑跨环最长路,它一定是环上原创 2017-09-28 20:59:55 · 557 阅读 · 0 评论 -
BZOJ1492:[NOI2007]货币兑换Cash (CDQ分治+斜率优化DP/平衡树维护凸壳)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1492题目分析:被一道水题坑了两天…… 首先朴素的O(n2)O(n^2)的DP是很好想的:记f[i]表示第i天不持有任何金券所能获得的最多人民币,很明显f[i]可以由f[i-1]更新而来(就是在1~i-1天就已经卖完所有金券,然后第i天不进行任何操作),还可以枚举一个j,看一下在第j天买入原创 2017-09-02 12:02:13 · 1645 阅读 · 0 评论 -
BZOJ3672:[Noi2014]购票 (斜率优化DP+二分+(树上CDQ分治/树链剖分))
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3672题目分析:这题和NOI2007货币兑换Cash差不多,只不过它斜率优化的式子要简单些,并把原先的序列变成了树,还加上了距离限制。 我们先考虑一种比较暴力的做法:能更新某个点答案的那些点一定在它父亲到它祖先某个点u的连续一段上,于是不妨用倍增找出这个u,然后做一次树剖。在DFS序的线段原创 2017-09-05 13:44:37 · 690 阅读 · 1 评论 -
2017"百度之星"程序设计大赛-资格赛 比赛总结
感觉最近任务还是挺重的,既要参加百度之星的比赛做题改题,又要做CDQ分治的练习题,还要参加学校的NOIP模拟赛写总结。效率还是要更高才好(话说BC的比赛我好像已经很久没动过了QAQ)。T1:度度熊保护村庄(hdu6080)题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6080题目分析:这题的思路很巧妙啊。一开始以为是求凸包或半平面交之类的,由于没做过原创 2017-08-15 08:55:41 · 1041 阅读 · 0 评论 -
noip2016 Day1 T3:换教室 (期望值+floyd+dp)
换教室题目描述对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况中情合适的课程。在可以选择的课程中,有2n节课程安排在n个时间段上。在第 i ( 1≤ i≤n)个时同段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 ci上课,而另一节课程在教室 di进行。在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的n节安排好的课程。如果原创 2016-12-05 20:07:58 · 652 阅读 · 0 评论