每日一题(5):poj2485, Highways
来源:互联网 发布:webform做数据库分页 编辑:程序博客网 时间:2024/05/30 23:14
1. 题目很简单。一开始自己就写出来了,然后一直WA,不知道为啥,后来经过两个小时,发现了,就是越界。不知道就是memset不可用,然后自己用for复制。但是再边界用了等号。导致一直错。不知道为什么ide不报错。感觉这算是对C++不熟导致的问题了。
2. 还有memset,一定在看看。感觉教训惨痛。
3. 题目就不说了。很简单,很直接。直接最小生成树就可以了。
4. freopen可以使用绝对路径,只要别写错了。
5. codeblocks上面如果某个文件有红色的感叹号,一定是有更新但是没有保存。
6. 还有一点不同,就是原来觉得应该从最短的线段开始。后来发现其实不必。只需要从任意一点开始。因为程序会找到此点所在的最短线段,也许这条线段不是所有线段里面最短的,但是没有关系,因为早晚最短的线段会被纳入树中。所以一开始不需要找最短线段作为起始点。
7. 还有本题不是求最短路,求的是最小生成树里面的最长路。只需要稍加变通就可以。
8.
568K
172MS
#include<iostream>#include<string>#include<string.h>#include<stdio.h>using namespace std;const int inf = 100000;const int maxSize = 501;int t;//测试数目int n;//村庄数目int dist[maxSize][maxSize];int prim(){ int min_w ;//目前的最短线段 int minWeight[maxSize];//每个点最小值的数组 bool flag[maxSize];//标记数组,看看某点是否访问过。 int result = 0;//返回结果。默认最小 int num=1;//已经在树种的点 int s = 1;//起始点。 int flagPoint;//下一次起始点 for(int i = 1; i < maxSize; i++) minWeight[i] = inf; for(int i = 1; i < maxSize; i++) flag[i] = true; flag[s] = false; while(true) { if(num==n) break; min_w = inf; for(int i = 2; i <=n; i++) { if(flag[i]&&minWeight[i]>dist[s][i]) { minWeight[i] = dist[s][i]; } if(flag[i]&&min_w>minWeight[i]) { min_w = minWeight[i]; flagPoint = i; } } num++; s = flagPoint; flag[s] = false; if(result<min_w) { result = min_w; } }return result;}int main(){ //下面是输入测试文件 //freopen("C://Users/23192/Desktop/data2.in","r",stdin); scanf("%d",&t); while(t--) { scanf("%d",&n); int minWeight2; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { scanf("%d",&dist[i][j]); //cout<<"测试:"<<dist[i][j]<<endl; } } printf("%d\n",prim()); }}
0 0
- 每日一题(5):poj2485, Highways
- POJ2485 Highways(高速公路)
- POJ2485 Highways
- POJ2485 Highways
- poj2485 Highways
- Highways(POJ2485)
- poj2485 Highways
- poj2485 - Highways
- POJ2485--Highways
- poj2485 Highways
- poj2485 - Highways
- poj2485--Highways
- POJ2485 - Highways
- POJ2485---Highways
- POJ2485 Highways
- Highways||POJ2485
- [POJ2485]Highways
- POJ2485 Highways
- JS产生随机数的几个用法!
- 全志A20在linux下,交叉编译inetutils工具支持telnet登陆
- 模拟实现memmove
- C代码中如何调用C++ C++中如何调用C
- list只能循环最后一条数据,是怎么回事
- 每日一题(5):poj2485, Highways
- list只能循环最后一条数据,是怎么回事
- UML类图详细介绍
- 计算机组成原理第二版(唐朔飞)5个实验
- POJ 2195 最小费用流
- hdu1010
- 一些常用的视频教程,有需要的悠悠可以收藏一下
- Java 关于强引用,软引用,弱引用和虚引用的区别与用法
- java--依赖、关联、聚合和组合之间区别的理解