摘要: 最短路径+01背包。。#include#include#include#include#includeusing namespace std;const int INF=1=dis[i];j--) { dp[j]=max(dp[j],dp[j-dis[i]]+po[i]); } } int ans; bool f=false; for(i=0;isum/2) { ans=i; f=tr... 阅读全文
posted @ 2013-08-22 20:04 Ink_syk 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 难点在于用并查集求与根节点的距离并更新吧。。 遇到过好几次了#include#include#include#include#includeusing namespace std;int n, q, fa[10005], num[10005], cou[10005];void init(){ int i; for(i=1; i<=n; i++) fa[i]=i, num[i]=1, cou[i]=0;}int find(int x){ if(x==fa[x]) return x; int tmp=fa[x]; fa[x]=find(fa[x]); ... 阅读全文
posted @ 2013-08-22 19:55 Ink_syk 阅读(118) 评论(0) 推荐(0) 编辑