2022年10月8日
摘要: 题目 现有A,B两种物品(各有n1和n2个) 组成一个排列(全部物品都用到), 且满足条件 : 不会出现连续k个物品 (对A物品 k=k1, B物品k=k2) 解答 线性dp,设f[i][j][k][0/1] 前i个物品,j个A,k个B,最后一个取A或B 枚举最后一个连续相同物品的区间即可 f[i] 阅读全文
posted @ 2022-10-08 17:52 towboat 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题目 序列{a} 操作: 删掉元素a[i] ,并同时删掉a[i]-1,a[i]+1 的元素 。 本次操作的收益为a[i] 问最大收益 解答 用一个桶b[i] 存a[i]的个数 f[i][1/0]表示前i个数,第i个数是否选 若选择了某个值 x, 产生收益 x*( x的个数) f[i][0]=max( 阅读全文
posted @ 2022-10-08 09:53 towboat 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目 略 简单的贪心 #include <iostream> #include <cstring> using namespace std; const int N=2003; int n,k,len; int c[30]; char s[N]; int main(){ int cas; cin>> 阅读全文
posted @ 2022-10-08 09:15 towboat 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 题目 n个物品 有属性a[i],b[i] 选择若干物品,且有sum{a[i]}=sum{b[i]}*k, 问 sum{a[i]} 最大值 n<=100 解答 01背包, sum{a[i]} -sum{b[i]}*k==0, 展开写 (a[1]-b[1]*k) + (a[2]-b[2]*k) + .. 阅读全文
posted @ 2022-10-08 09:07 towboat 阅读(14) 评论(0) 推荐(0) 编辑