上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 题目链接:https://vjudge.net/problem/HDU-1074 状压dp。将作业从0-n-1存储。对于二进制m位为1表示做了第m门作业(右一位定义为第0位)。可以写出转移方程:f[i]=min(f[st]+max(time-a[j].d,0)),此处st表示如果状态i的j位为1也就 阅读全文
posted @ 2020-04-27 00:47 coastal_taipan 阅读(139) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-2184 01背包问题的变形。将S当做重量,F当做价值。但注意此时S可能有负数且-1000<=Si<=1000,且N<=100。所以可以考虑将整个数组向右平移100000个单位,这样可以避免数组下标为负数的情况 设c=10000 阅读全文
posted @ 2020-04-27 00:17 coastal_taipan 阅读(187) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-3280 区间dp。设dp[i][j]表示从原串c的位置i到位置j,变成回文所需要的最小代价。 有如下情况: 1) c[i]=c[j],则dp[i][j]=dp[i+1][j-1] 2) c[i]≠c[j],对于左边的c[i], 阅读全文
posted @ 2020-04-27 00:04 coastal_taipan 阅读(151) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-2392 贪心的想,先堆限高低的木块,再堆限高更高的木块的方案是更优的,因为反之有可能限高低的木块无法堆.于是将木块按限高排序,然后做多重背包。有两个小优化: 1)如果当前的dp[j]=1,说明当前高度j已经可以由之前的木块堆出 阅读全文
posted @ 2020-04-27 00:01 coastal_taipan 阅读(128) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P1197 可以反过来想,从最终的状态逐渐加入点,并查集合并这个点和它相连的点。用一个cnt动态维护连通块个数:加入一个新的点时,cnt++,此后每次合并集合时,如果根节点在同一个集合则不合并,自然cnt不变;如果根节点在不 阅读全文
posted @ 2020-04-22 15:04 coastal_taipan 阅读(164) 评论(0) 推荐(0)
摘要: poj3421 题目链接:https://vjudge.net/problem/POJ-3421 一开始直接把约数全部枚举出来,求LIS,结果一直tle......明明900000的时候约数个数才100+,用LIS应该没问题,可能是数据组数很多?后来用质因数分解,复杂度确实降下来很多,因为主要的复杂 阅读全文
posted @ 2020-04-21 22:24 coastal_taipan 阅读(171) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P1006 就是从左上到右下,取两条不相交路径,使得总分值最大设f[i][j][k][l]表示第一次走到(i,j),第二次走到(k,l)的最大分值,则有:1)若不在起点或终点,且i=k,j=l,说明两次走到了不在起点或终点的 阅读全文
posted @ 2020-04-09 22:33 coastal_taipan 阅读(207) 评论(0) 推荐(0)
摘要: poj2385 题目链接:https://vjudge.net/problem/POJ-2385 设dp[i][j]表示经过i秒移动了j次能接到的最多苹果数,则dp[i][j]=max(dp[i][j],dp[i-k][j-1]+sum[i][j%2+1]-sum[i-k][j%2+1]);(第i- 阅读全文
posted @ 2020-04-08 14:25 coastal_taipan 阅读(139) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-3356 题意就是给定字符串x和y,可以对x进行如下操作:插入一个字符,删除一个字符,或者将一个字符变成另一个;求将x变成y的最小操作数 设dp[i][j]表示字符串x到第i位,y到第j位的最小操作数;则dp[i-1][j]+1 阅读全文
posted @ 2020-03-30 16:19 coastal_taipan 阅读(144) 评论(0) 推荐(0)
摘要: 简单学习了一下带权并查集,参考了这个博客,感觉写的不错:https://blog.csdn.net/yjr3426619/article/details/82315133 和一般的并查集相比,代码的变化主要在路径压缩和合并的时候。因为带上了权值,所以路径压缩的时候要更新权值(一般v[x]表示的都是x 阅读全文
posted @ 2020-03-19 15:01 coastal_taipan 阅读(167) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 下一页