![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
淘7的悟空
这个作者很懒,什么都没留下…
展开
-
luoguP3625 APIO2009 采油区域
题面题面题解套路题。我第一想法是设f[i][j][k]f[i][j][k]f[i][j][k]为(1,1)−(i,j)(1,1)-(i,j)(1,1)−(i,j)的矩阵里,选了k个子矩阵,且最后一个矩阵的右下角为(i,j)(i,j)(i,j),转移就是f[i][j][k]=max(f[a][b][k−1])+dat(i−k+1,j−k+1,i,j)f[i][j][k]=max(f[a][b][k-1])+dat(i-k+1,j-k+1,i,j)f[i][j][k]=max(f[a][b][k−1])原创 2020-07-31 14:59:40 · 232 阅读 · 0 评论 -
[JSOI2016]最佳团体
立志做日更博主!题面给定一棵树,每个点有代价和价值,现在求一个点集,使得点集中每个点的祖先也都在点集中,且点集中所有点的价值和/代价和最大。题解价值和/代价和最大过于明显的01分数规划,直接把a-mid*j作为点权跑树形DP,然后看f[root][1]f[root][1]f[root][1]是否大于0即可。据说这题卡常,所以我不打算写。放个题解的代码:#include <stdio.h>#include <string.h>#include <algor原创 2020-05-22 17:32:02 · 155 阅读 · 0 评论 -
[HEOI2013]Eden 的新背包问题
题面原题过于繁复,这里口述,多重背包,多次询问,每次询问的背包容量不一样,并且每次询问会规定一个物品不能选(这个规定的物品每次询问都会改变)。题解首先考虑对询问的两个要求,容量不一样很好处理,因为DP跑背包的过程中本来就会记录不同容量时的答案。对于规定一个物品不能选怎么处理呢?不计算这一个物品,需要计入答案的物品就被分成了编号比这个物品小的物品集合和编号比这个物品大的物品集合,可以直接双向...原创 2020-04-16 22:51:18 · 199 阅读 · 0 评论 -
[HNOI2002]公交车路线
挑战全网最快!!做法一O(N)直接递推,dp[i][j]dp[i][j]dp[i][j]表示Tiger在换了i次车时位于j的方案数,最后输出dp[n][E]dp[n][E]dp[n][E]由于这是2002年的题,所以用现在的评测机O(N)也能过做法二O(8^3logN)矩阵乘法,转移矩阵如下0100000110100000010...原创 2020-02-14 14:46:55 · 254 阅读 · 4 评论 -
HNOI2008GT考试
题面给定一个长度为m的字符串s,给定一个不大于101810^{18}1018的正整数n,询问:长度为n且不包含子串s的字符串有多少种。题解从已经匹配上的位数考虑,f[i][j]表示i位的字符串,已经匹配上了j位的方案数,那么只需要设计一个m*m的矩阵就可以快速幂了。构造矩阵的的过程可以用KMP来O(M)做,但是M很小,可以直接暴力O(M^4),我就直接打的暴力。#include<bi...原创 2020-02-10 17:08:23 · 145 阅读 · 0 评论 -
洛谷P1472奶牛家谱
题目描述一个有 nnn 个节点,深度为 kkk 的无标号完满二叉树(即每个节点的儿子数为 000 或 222)有多少种结构?定义根节点深度为 111。答案对 990199019901 取模。输入格式两个空格分开的整数 n,kn,kn,k。输出格式输出一行一个整数表示答案。输入输出样例输入 #1 复制5 3输出 #1 复制2说明/提示对于 100%100\%100% 的数据...原创 2020-02-06 22:42:10 · 185 阅读 · 0 评论 -
HiHoCoder1608-Jerry的奶酪
题面题解翻译成正常语言,就是平面上有一些点,有一些点不能经过,有一些点必须经过,必须经过的点不超过10个,平面最大300*300可以直接让每个必须被经过的的点作点集,然后建图,只需要对于每个点跑bfs求这个点到其他点的距离了,最终建出一个完全图,跑状压DP求哈密顿回路即可。其实这题比较水,记录的原因主要是因为这题结合了建图和哈密顿回路,比较综合。收获:看到tsp问题(哈密顿回路),毫...原创 2020-01-30 22:52:30 · 165 阅读 · 0 评论 -
[HNOI2008]玩具装箱TOY
题目描述P 教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P 教授有编号为 1⋯n1 \cdots n1⋯n 的 nnn 件玩具,第 iii 件玩具经过压缩后的一维长度为 CiC_iCi。为了方便整理,P教授要求:在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具...原创 2020-01-27 12:37:22 · 172 阅读 · 0 评论 -
背包问题
主要记录代码,思路就不讲了01背包:#include<bits/stdc++.h>using namespace std;int t,m,thing[2][105],dp[105][1005];int maxn(int a,int b){ if(a>b) return a; return b;}int main(){ scanf("%d%d",&t,&...原创 2019-12-04 18:55:34 · 78 阅读 · 0 评论 -
[HNOI2001]产品加工
题目描述某加工厂有A、B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成。由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任务又会不同。某一天,加工厂接到n个产品加工的任务,每个任务的工作量不尽一样。你的任务就是:已知每个任务在A机器上加工所需的时间t1, B机器上加工所需的时间t2及由两台机器共同加工所需的时...原创 2019-12-04 15:45:58 · 206 阅读 · 0 评论 -
模拟赛题目——拣尽寒枝不肯栖
题面题目背景拣尽寒枝不肯栖,寂寞沙洲冷。——《卜算子》题目描述书接上回,xyc出去游荡之后非常的悲凉,于是他把自己比作一只“孤鸿”。现在有1棵树,这棵树上有N个枝头,每个枝头上有viv_ivi个金币,但是由于xyc非常的重,当他落在第iii个枝头上时,其他每个枝头上的金币都会有wiw_iwi个金币被震落(注意:金币数可能减成负数)并且xyc落到那个枝头上后会把枝头上全部金币拿走。请问,...原创 2019-11-09 22:57:11 · 235 阅读 · 0 评论 -
UVA10529 Dumb Bones -(数学期望,DP)
额,看见很多大佬写了DP,然后这里提供一个记忆化搜索的方法最开始的想法对于一段区间[i,j],往里面插入第j−i+2j-i+2j−i+2块骨牌,最后复杂度是O(n3)O(n^3)O(n3),转移方程:f[i][j]=min(f[i][k−1]×1−pr1−pl−pr+f[k+1][j]×1−pl1−pl−pr+11−pl−pr)(i<k<j)f[i][j]=min...原创 2019-08-20 13:17:46 · 198 阅读 · 1 评论 -
DP优化:矩阵乘法
话说这是博主的第一篇博客。。。咳咳咳,今天讲的是DP的一种优化策略——矩阵乘法关于能用矩阵乘法优化的DP题目,有如下几个要求:转移式只有加法,清零,减法etc.,max和min运算不允许转移式中关于前几位dp结果得到的系数必须是常量转移次数一般超级多综上,举一个例子:dp[ i ]=a×dp[ i-1 ]+b×dp[ i-2]+c×dp[ i-3 ]其中,a,b,c是常量,...原创 2019-05-04 23:01:20 · 2379 阅读 · 4 评论