摘要:
题解:显然可以dp[i][j]表示到第i个,选了j个的最优解 单调队列优化 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define pii pair<ll,int> 4 #define mp(a,b) make_pair(a,b) 5 # 阅读全文
posted @ 2019-03-30 20:34
幽蝶
阅读(128)
评论(0)
推荐(0)
摘要:
题解: 你能确定的集合一定是k个重量一样的,重量为m 然后考虑dp(j,k)为选了j个,重量和为k的方案,我们现在只需要判定唯一性,所以状态只有0,1,2三种 然后dp就行 坑点:1 1 1 1 1 2 2 2 2 2这种,可以全部确定 1 #include<bits/stdc++.h> 2 #de 阅读全文
posted @ 2019-03-30 18:53
幽蝶
阅读(187)
评论(0)
推荐(0)
摘要:
题解: 考虑这个东西是带约束条件的完全背包 想办法把xi>xj的约束条件消掉 那么我们把限制条件(xi > xj)看成边 i -> j,连成有向图 发现这个有向图是一堆环和链 有环显然就GG了,然后我们只要考虑全是链的情况 考虑全是链,那么我们消掉约束条件就是每次原有权值加上所有前驱的权值 然后就是 阅读全文
posted @ 2019-03-30 17:49
幽蝶
阅读(266)
评论(0)
推荐(0)
摘要:
题解: 考虑这个每个数字少个数是可二分的(答案关于个数单调) 然后我们dp dp[i][S]表示到第i个数,已选完的数字集合为S 转移是贪心取连续一段 预处理转移右端点可以降下复杂度 1 #include<bits/stdc++.h> 2 #define maxn 1005 3 using name 阅读全文
posted @ 2019-03-30 00:51
幽蝶
阅读(170)
评论(0)
推荐(0)

浙公网安备 33010602011771号