hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
来源:互联网 发布:淘宝假冒品牌怎么投诉 编辑:程序博客网 时间:2024/04/30 10:27
题意:给你n个站点,每个站点之间有一条路径相连即:带权路径。如果你能做完全部的点,计算最小的话费。
思路:MST+优先队列。
#include<iostream>#include<algorithm>#include<queue>#include<map>#include<cstdio>#include<string.h>#define maxn 111using namespace std;int far[28];int rank[28];struct node{ int st; int ed; int w; bool friend operator <(const node &a,const node &b) { return a.w>b.w; }};priority_queue<node> Q;map<char,int>M;void init(){ for(int i=0; i<=27; i++) { far[i]=i; rank[i]=1; }}int find_set(int n){ if(far[n]==n) return n; far[n]=find_set(far[n]); return far[n];}int kruska(int gh){ int ans=0; int tem=0; node Node; while(!Q.empty()) { Node=Q.top(); Q.pop(); int x=find_set(Node.st); int y=find_set(Node.ed); if(x!=y) { if(rank[x]>rank[y]) { far[y]=x; rank[y]+=rank[x]; } else { far[x]=far[y]; rank[x]; } ans+=Node.w; ++tem; if(tem==gh) break; } } return ans;}int main(){ int T; int edg,cou,num; char op; node Node; while(cin>>T,T) { while(!Q.empty()) Q.pop(); init(); M.clear(); num=edg=cou=0; for(int i=1; i<T; i++) { cin>>op>>cou; if(M[op]==0) M[op]=++num; for(int j=0; j<cou; j++) { int tem; char oop; cin>>oop>>tem; if(M[oop]==0) M[oop]=++num; Node.st=M[op]; Node.ed=M[oop]; Node.w=tem; Q.push(Node); } } printf("%d\n",kruska(T)); } return 0;}
- hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
- hdu 1233 kruskal+优先队列 如果让我说:我只能说,实力决定一切。
- hdu 3191 次短路+优先队列 如果让我说:我只能说,实力决定一切
- poj3463 hdu1688 次短路+优先队列 如果让我说:我只能说,实力决定一切
- poj3067 树状数组+优先队列 如果让我说:我只能说,实力代表一切
- hdu 2642 二维数组+判重 如果让我说:我只能说,实力决定一切
- hdu2767强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu1269强连通水题 如果让我说:我只能说,实力决定一切
- poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
- poj2186 强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu2544 spfa 第一弹 如果让我说:我只能说,实力决定一切
- hdu1535 spfa() 如果让我说:我只能说,实力决定一切
- hdu2112 spfa() 如果让我说:我只能说,实力决定一切
- hdu3339 spfa()+dp 如果让我说:我只能说,实力决定一切
- hdu 3336 KMP走起 如果让我说:我只能说,实力决定一切
- hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
- poj 2752 KMP+DFS() 如果让我说:我只能说,实力决定一切
- poj3974 hdu3068最长回文子串 如果让我说:我只能说,实力决定一切
- 各种排序算法及其java程序实现
- android webview goback 跳过302方法
- 关于注册服务启动开启远程调试端口
- oracle rman catalog目录数据库创建过程
- 验证方法 ValidationExpression 正则表达式
- hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
- java基础
- 关于getHibernateTemplate().find(sql)
- jq常见50用法
- Android NDK学习笔记
- hdu 4153(数学)
- android的应用程序调用另一个应用程序的方法
- 适合新手的 Android 开发环境搭建(2) 安装及更新SDK
- ORACLE 11GR2 RAC 开启归档和flashback