2016-9-11 CCF第四题
来源:互联网 发布:软件开发培训学费 编辑:程序博客网 时间:2024/06/06 20:01
注意:代码正确性无法保证。。。
#include <iostream>using namespace std;const int MAXNUM = 1024;const int MAXARR = 10010;int rr[MAXARR][MAXARR];void dijk(int n,int v,int *dist,int *pre){bool visit[MAXARR];int i,j;for(i=2;i<=n;i++){visit[i] = false;dist[i] = rr[v][i];if(rr[v][i]>=MAXNUM){pre[i] = 0;}else{pre[i] = v;}}pre[v] = 0;dist[v] = 0;visit[v] = true;for(i=2;i<=n;i++){int temp = MAXNUM;int u = v;for(j=1;j<=n;j++){if(!visit[j]&&dist[j]<temp){temp = dist[j];u = j;}}visit[u] = true;for(j=1;j<=n;j++){if((!visit[j])&&rr[u][j]<MAXNUM){int newdist = dist[u]+rr[u][j];if(dist[j]>=newdist){dist[j] = newdist;if(pre[j]==0){pre[j] = u;}else if(rr[pre[j]][j]>rr[u][j]){pre[j] = u;}}}}}}int main(){int a,b,c,dist[MAXARR],pre[MAXARR],n,m,i,j;while(cin>>n>>m){for(i=1;i<=n;i++){for(j=1;j<=n;j++){rr[i][j] = MAXNUM;}}for(i=0;i<m;i++){cin>>a>>b>>c;rr[a][b] = rr[b][a] = c;}int tt = 0;cout<<endl<<endl;dijk(n,1,dist,pre);for(i=1;i<=n;i++){tt+=rr[pre[i]][i];cout<<dist[i]<<endl;}cout<<tt<<endl;}return 0;}/*4 51 2 42 4 31 3 5 2 3 23 4 2*/
0 0
- 2016-9-11 CCF第四题
- ccf第四题整理
- 第七次 CCF 第四题
- CCF-2016/9/11
- 2017.12.3CCF真题第四题
- 刷CCF算法题(第四天)
- 第六届CCF计算机职业资格认证考试题解(第四题)
- 第六次CCF计算机软件能力认证考试(第四题)
- CCF CSP 第十次 第四题 地铁修建 JAVA版
- [各种乱七八糟]第四届CCF软件能力认证 第五题(最小花费)题解
- 第七届ccf认证第四题 自己写的错误答案
- 第十次CCF认证第四题图论题 C语言编程解析及其答案
- CCF认证201312第四题:有趣的数+动态规划专题
- CCF 2016 9-1 最大波动
- CCF 2016 9-2 火车购票
- CCF 2014年9月 3题
- 第四届CCF计算机职业资格认证考试题解(C++)
- 第四届CCF认证C++(题号A)
- hive功能 Cube, Rollup介绍
- JDK配置 笔记
- 顺序表
- 读书总结-linux系统的信号机制
- 浏览器的渲染原理简介
- 2016-9-11 CCF第四题
- C++11 并发指南一(C++11 多线程初探)
- 会计算的calc()
- Raptor实践参考:求和
- 循环的问题,当涉及到自身的增减问题时,
- web.xml里<filter-mapping>中的<dispatcher>作用
- 状态模式(Stats Pattern)
- 【Android 4.0 4.1 4.2】页面相关图片CSS absolute
- java 中 mongodb的各种操作 模糊查询 精确查询 等等