- 博客(2)
- 资源 (2)
- 收藏
- 关注
原创 HDU 2844 Coins
多重背包。 每个物品分别dp。。 dp[i][j]表示考虑了前i个物品。。装满j的背包。。第i个物品最少拿多少个 这样就可以了 转移大概是。。。dp[i][j] = std::min(dp[i][j - a[i]] + 1, 0 if dp[i - 1][j] a[i]是第i个物品的大小 c[i]是数量 Coins Time Limit: 2000/1
2015-05-15 19:30:24 1248
原创 HDU 5222 Exploration
首先对于所有的无向边,我们使用并查集将两边的点并起来 若一条边未合并之前,两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为这两个点处于同一个并查集集合中,那 么它们之间至少存在一条路径) 如果上一步没有判断出环,那么仅靠无向边是找不到环的 考虑到,处于同一个并查集集合中的点之间必定存在一条路径互达,因此将一个集合的点合并之后,原问题等价于在新生成的有向 图中是否有环(包括
2015-05-04 14:48:34 1118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人