DP
wookaikaiko
这个作者很懒,什么都没留下…
展开
-
ACM-ICPC 2017 Asia Xi'an——LOL(DP)
题意: 模仿游戏LOL,己方选择5个英雄(能选择的前提是已经买了这个英雄) 自己这一方选的英雄肯定不能一样,敌方也选择5个英雄但是可以随便选喜欢的 然后己方和敌方可以分别各禁止5个英雄,总的英雄种类数是100个. 题解: 题意具体化到给出的输入数据来说就是给5行只由0和1组成的字符串,在每一行选择一个1,各行选的1不能在同一列。 可以用DP来做,先把第一行的可选方案处理出来,也就是第一行...原创 2018-03-30 20:42:40 · 497 阅读 · 0 评论 -
HDU1520——Anniversary party(树形DP)
题意:有n个人,他们之间有上司和下属关系,每个人有自己的价值,现在要选一部分人使其满足上司和下属不同时被选到的情况下价值总和最大。更直接的讲就是,在一棵树中选价值总和尽量多的节点但是不能同时选到一个节点和它的直接父节点。 题解:因为这里要求选的点的个数是不限定的,只需要满足价值总和尽量大。而对于每个点来说,只有选和不选两种状态,这种情况其实和01背包有一些类似,所以我们可以用背包的思想来做。 ...原创 2018-07-18 09:46:56 · 169 阅读 · 0 评论 -
Cheapest Palindrome(POJ-3280)
题意:给一个长度为m的字符串s,其中含有n种字母,给出添加和删除某种字母所需要的代价,你可以通过添加或删除某些字母来使这个字符串变成回文串,求使当前这个字符串变成回文串需要的最少代价是多少。题解:典型的区间DP,可以通过小区间一点一点的推到大区间。定义dp[i][j]表示把区间(i,j)编为回文串所需要的最小代价,那么我们可以从以下几个方面来分析。首先对于一个区间dp[i][j]来说,如果s[i]...原创 2018-07-14 21:00:38 · 185 阅读 · 0 评论 -
2018牛客多校第一场
E.Removal 题意:给一个长度为n的数字序列,每个数字大小都不超过k,要删除其中m个数字问有多少种删除后的序列不相同的方案。 题解:DP。设dp[i][j]表示从1~i 删除j个数字的方案有多少种。首先初始化,很容易想到dp[i][0]=1,同时dp[i][i]=1; 转移方程是:dp[i][j]=dp[i-1][j]+dp[i-1][j-1] (前i-1个数字中删除j-1个再删除第i...原创 2018-07-21 11:17:25 · 304 阅读 · 0 评论 -
hdu 6321-Dynamic Graph Matching
6321-Dynamic Graph Matching 题意:给定一个n 个点的无向图,m 次加边或者删边操作。在每次操作后统计有多少个匹配包含k = 1, 2, ..., n/2 条边。 题解:状压DP。先放官方题解,我觉得讲的蛮清楚的。 我再说一下我的理解,首先S表示的是一个集合,里面表示的是哪个点被选了哪个点没有,因为n最多10,所以我们可以用二进制来表示一个集合里面的情况,第i位...原创 2018-07-30 21:02:14 · 338 阅读 · 0 评论 -
HDU6357——Hills And Valleys
点击打开原题目 题意:给一串由n个数字组成的字符串,选择其中一个区间进行翻转,要求翻转后该字符串的最长非降子序列长度最长,输出这个最长非降子序列的长度以及翻转的区间的左右端点。 题解:由于n的大小为1e5,如果直接枚举a中的翻转位置的话,那么复杂度肯定不行,但是这里有一种十分巧妙的做法。首先如果是求一个只有数字的串中的最长上升子序列长度的话,那就是这个串与 "0123456789" 这个串的最...原创 2018-08-12 11:28:05 · 491 阅读 · 0 评论