hdu 1301 Jungle roads
来源:互联网 发布:华硕fx50j优化 编辑:程序博客网 时间:2024/04/28 00:15
主题思想: 最小生成树,Prim 算法,或者Kruskal’s
但是我有点忘了,
Kruskal 需要记录两个节点是不是已经连通,这个可以用UF来做。
Prim 算法,需要判断两个节点是不是已经在mst中了,判断标志。
我给弄混了。
Kruskal 算法
#include <iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;struct Edge{ int w; int v; int cost; Edge(){} Edge(int from,int to ,int weight){ w=from; v=to; cost=weight; }};int id[30];int Find(int p){ if( id[p]==p) return p; id[p]=Find(id[p]); return id[p];}void UN(int p,int q){ int pRoot=Find(p); int qRoot=Find(q); if(pRoot==qRoot) return ; id[pRoot]=qRoot;}bool hasConnect(int p,int q){ return Find(p)==Find(q);}struct cmp{ bool operator ()(Edge a ,Edge b){ return a.cost>b.cost; }};int main(){ priority_queue< Edge,vector<Edge>,cmp> q; int n; char from; char to; int weight; int m; while(scanf("%d",&n)!=EOF){ if(n==0)break; //init while(!q.empty())q.pop(); memset(id,0,sizeof(id)); for(int i=0;i<n-1;i++){ cin>>from>>m; for(int j=0;j<m;j++){ cin>>to>>weight; q.push(Edge(from-'A',to-'A',weight)); id[from-'A']=from-'A'; id[to-'A']=to-'A'; } } //prim Edge tmp; int sum=0; while(!q.empty()){ tmp=q.top(); q.pop(); if(hasConnect(tmp.w,tmp.v)) continue; UN(tmp.w,tmp.v); sum+=tmp.cost; } printf("%d\n",sum); } return 0;}
阅读全文
0 0
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- Hdu 1301 - Jungle Roads
- HDU 1301 Jungle Roads
- HDU 1301 Jungle Roads
- HDU 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- HDU 1301 Jungle Roads
- HDU 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu 1301 Jungle Roads
- hdu-1301 Jungle Roads
- hdu 1301 jungle roads
- hdu 1301 Jungle Roads
- Linux--进程间通讯IPC(信号量,消息队列,共享内存)
- 1到n的加法
- 2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) 部分题/平衡树/最小环/思路bfs
- 组合模式
- 用keras实验mnist数据
- hdu 1301 Jungle roads
- spring+mybatis之声明式事务管理实例
- TensorFlow学习日记13
- LeetCode--Combination Sum IV
- HTTP协议—— 简单认识TCP/IP协议
- NestingWorks2018 SP0.0中文版下载
- Anaconda2和3切换
- Navicat Premium 连接远程 Oracle数据库
- I