![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 93
幼儿园大哥~
笑口常开,好彩自然来
展开
-
Codeforces 1475 G
传送门 题目大意 有nnn个数,从中挑选一个最大的子集,使得集合中任意两个不同的数x,yx,yx,y,都存在x/yx/yx/y或y/xy/xy/x。 思路 挑选的子集排序后,$a_i_应该是前面数的倍数。 那么题意就简化为:要想最终的序列排序后满足每个数是它前面所有的数的倍数最少删掉多少数。 dp[a[i]]dp[a[i]]dp[a[i]]表示以i_ii为最终序列的最大数时,最终序列有多少数。 我们枚举aia_iai的因数,记b1<=j<=mb_{1<=j<=m}b1<=j原创 2021-03-18 20:25:07 · 183 阅读 · 1 评论 -
UPC 问题 K: 最勇敢的机器人(分组背包+并查集)
题目描述 机器人们都想知道谁是最勇敢的,于是它们比赛搬运一些物品。 它们到了一个仓库,里面有n个物品,每个物品都有一个价值Pi和重量Wi,但是有些物品放在一起会爆炸,并且爆炸具有传递性。(a和b会爆炸、b和c会爆炸则a和c会爆炸)机器人们可不想因此损失自己好不容易从Wind那里敲诈来的装备,于是它们想知道在能力范围内,它们最多可以拿多少价值的物品。 你能帮助它们吗? 输入 每组测试数据 第1行为n,Wmax,k(0<=n,Wmax,k<=1000) 接下来n行,为每个物品的Pi,Wi(0<原创 2020-11-22 13:38:52 · 274 阅读 · 0 评论 -
编辑距离 DP
编辑距离 设A和B是两个字符串。我们要用最少的代价(或者字符操作次数),将字符串A转换为字符串B。字符操作有三种 1.插入一个字符,所需代价为x 2.删除一个字符,所需代价为y 3.将一个字符改为另一个字符,即替换,所需代价为z 输入AB两个字符串,输出代价 思路 删除:可以看做把A串最后一个字符删去后不再考虑这个字符 所以dp[i][j]=min(dp[i][j],dp[i-1][j]+x) 插入:可以看做与B串最后一个字符抵消后不再考虑这个字符 所以dp[i][j]=min(dp[i][j],dp[i]原创 2020-11-17 13:00:17 · 119 阅读 · 0 评论