摘要: 原题链接 考察:背包dp 思路: 组合问题一般用背包dp解决.f[i][j][k]表示前i个数选j个数,余数为k的最大和. 很容易想到状态转移方程f[i][j][k] = f[i-1][j-1][Get_Mod(k-a[i],K)]+a[i],f[i-1][j][k]之间取最值.时间复杂度是105* 阅读全文
posted @ 2021-04-16 20:57 acmloser 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:并查集 思路: 很容易想到用并查集的根节点代表此集合的权值和.但是注意在结点合并的时候,会出现本不属于这里的权值.被路径压缩加到子结点上. 这里有两种处理方式: 一、建立虚点. 在x,y之上建立一个结点s,在路径压缩时就不会合并到y集合的权值k. 二、特殊处理x结点权值,在x权值和上 阅读全文
posted @ 2021-04-16 13:01 acmloser 阅读(49) 评论(0) 推荐(0) 编辑