poj 1861 network
2012-12-10 19:18
369 查看
最小生成树 ,并查集
用的是kruskal算法,第一次用 ,其实挺简单的
在这里提一个很性感、犀利的编辑器 sublime text2
写代码非常方便,在这里存一下一些快捷操作
用的是kruskal算法,第一次用 ,其实挺简单的
qwertyxk | 1861 | Accepted | 420K | 94MS | C++ | 1267B |
#include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; #define MAX 15000 typedef struct { int first; int second; int cablelen; bool choosed; }connect; connect connections[MAX+10]; int hubs[1010]; bool compare(connect a,connect b) { return a.cablelen<b.cablelen; } int find(int i) { for(;hubs[i]>=0;i=hubs[i]) {;} return i; } void simpleUnion(int i,int j) { hubs[i]=j; } int main() { int N,M,i,count=0,count1=0,maxnum=0; scanf("%d%d",&N,&M); for(i=1;i<=N;i++) hubs[i]=-1; for(i=0;i<M;i++) { scanf("%d%d%d",&connections[i].first,&connections[i].second,&connections[i].cablelen); connections[i].choosed=false; } sort(connections,connections+M,compare); \\路径从小到大排序 while(count!=N-1) { while(count1<=M-1) { int a=find(connections[count1].first); int b=find(connections[count1].second); count1++; if(a!=b) { simpleUnion(a,b); count++; connections[count1-1].choosed=true; if(connections[count1-1].cablelen>maxnum) maxnum=connections[count1-1].cablelen; break; } } } printf("%d\n",maxnum); printf("%d\n",N-1 ); for(i=0;i<M;i++) if(connections[i].choosed) printf("%d %d\n",connections[i].first,connections[i].second); system("pause"); return 0; }
在这里提一个很性感、犀利的编辑器 sublime text2
写代码非常方便,在这里存一下一些快捷操作
Ctrl+L | 选择整行(按住-继续选择下行) |
Ctrl+KK | 从光标处删除至行尾 |
Ctrl+Shift+K | 删除整行 |
Ctrl+Shift+D | 复制光标所在整行,插入在该行之前 |
Ctrl+J | 合并行(已选择需要合并的多行时) |
Ctrl+KU | 改为大写 |
Ctrl+KL | 改为小写 |
Ctrl+D | 选词(按住-继续选择下个相同的字符串) |
Ctrl+M | 光标移动至括号内开始或结束的位置 |
Ctrl+Shift+M | 选择括号内的内容(按住-继续选择父括号) |
Ctrl+/ | 注释整行(如已选择内容,同“Ctrl+Shift+/”效果) |
Ctrl+Shift+/ | 注释已选择内容 |
Ctrl+Space | 自动完成(win与系统快捷键冲突,需修改) |
Ctrl+Z | 撤销 |
Ctrl+Y | 恢复撤销 |
Ctrl+Shift+V | 粘贴并自动缩进(其它兄弟写的,实测win系统自动缩进无效) |
Ctrl+M | 光标跳至对应的括号 |
Alt+. | 闭合当前标签 |
Ctrl+Shift+A | 选择光标位置父标签对儿 |
Ctrl+Shift+[ | 折叠代码 |
Ctrl+Shift+] | 展开代码 |
Ctrl+KT | 折叠属性 |
Ctrl+K0 | 展开所有 |
Ctrl+U | 软撤销 |
Ctrl+T | 词互换 |
Ctrl+Enter | 插入行后 |
Ctrl+Shift Enter | 插入行前 |
Ctrl+K Backspace | 从光标处删除至行首 |
Ctrl+Shift+UP | 与上行互换 |
Ctrl+Shift+DOWN | 与下行互换 |
Shift+Tab | 去除缩进 |
Tab | 缩进 |
F9 | 行排序(按a-z) |
相关文章推荐
- poj 1861 network
- POJ1861-Network(Kruskal)
- poj1861 Network
- POJ-1861 Network
- POJ 1861 Network
- POJ-1861 Network
- POJ 1861 Network(最小生成树)
- poj 1861 network
- poj 1861 Network 解题报告
- POJ-1861-Network
- POJ 1861:Network(最小生成树&&kruskal)
- POJ 1861 Network
- Poj 1861 Network
- poj1861 Network(kruskal求最小生成树)
- POJ 1861 Network(KUS算法)
- POJ 1861 Network (并查集的应用,kruskal)
- POJ 1861 ——Network——————【最小瓶颈生成树】
- poj&nbsp;1861&nbsp;network&nbsp;(kruskal)
- POJ 1861-Network(最小生成树-Kruskal)
- POJ 1861 Network (MST kruskal 加权合并 (瓶颈生成树))