摘要:
最短路径+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... 阅读全文
摘要:
难点在于用并查集求与根节点的距离并更新吧。。 遇到过好几次了#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]); ... 阅读全文