poj 1456
貪心+并查集。
代碼:
#include<iostream> #include<fstream>using namespace std;int n; struct e{int s,t; };int cmp(const void *a,const void *b){return (*(e *)b).s-(*(e *)a).s; }e p[10001];int f[10001];void init(){int i;for(i=0;i<=10000;i++){f[i]=i;} }int father(int s){if(s!=f[s])f[s]=father(f[s]);return f[s]; }void unionset(int s,int t){int i,j;i=father(s);j=father(t);f[i]=j; }void read(){ // ifstream cin("in.txt");int i,j,k,s,t,ans;while(cin>>n){ans=0;for(i=0;i<n;i++){cin>>j>>k;e b;b.s=j;b.t=k;p[i]=b;}qsort(p,n,sizeof(e),cmp);init();for(i=0;i<n;i++){s=father(p[i].t);if(s!=0){ans+=p[i].s;unionset(s,s-1);}}cout<<ans<<endl;} }int main(){read();return 0; }
轉載于:https://www.cnblogs.com/zhaozhe/archive/2011/04/23/2025714.html
總結
- 上一篇: Nicholas C. Zakas如何面
- 下一篇: 编译原理词/语法分析