• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Keep Strive

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2012年9月5日

hdu 1875畅通工程再续(Prim算法)
摘要: 题意:找出一条路是所有岛都联通,如果找不到就输出oh!。解题思路:本体用的是Prim算法,模板里面加一个for判断是否存在一条路能走完所有岛。在输入时判断两个岛之间的距离。View Code #include <iostream>#include <cmath>using namespace std;#define INF 0x3fffffff#define MAX 100+10double map[MAX][MAX];int used[MAX];double dis[MAX];double sum;int n;int type;struct node{ double 阅读全文
posted @ 2012-09-05 21:06 Keep Strive 阅读(176) 评论(0) 推荐(0)
 
hdu1102 Constructing Roads(Prim算法)
摘要: 题意:给出几个村庄修路所花费的费用,现在再给出几组已经有路的村庄。输出这些村庄联通所要生成的最小费用。处理:把已经存在的路更新为0就行了。初始化map数组时初始为-1即可。连接:http://acm.hdu.edu.cn/showproblem.php?pid=1102View Code #include <iostream>#include <cmath>using namespace std;#define INF 0x3fffffff#define MAX 100+10int map[MAX][MAX];int used[MAX];int dis[MAX];int 阅读全文
posted @ 2012-09-05 20:49 Keep Strive 阅读(150) 评论(0) 推荐(0)
 
hdu 1162 Eddy's picture(Prim算法)
摘要: 题意:先算出没两点之间的长度,然后直接套用Prim模版就行。连接:http://acm.hdu.edu.cn/showproblem.php?pid=1162View Code #include <iostream>#include <cmath>using namespace std;#define INF 0x3fffffff#define MAX 100+10double map[MAX][MAX];int used[MAX];double dis[MAX];double sum;int n;struct node{ double i; double j;};vo 阅读全文
posted @ 2012-09-05 20:32 Keep Strive 阅读(136) 评论(0) 推荐(0)
 
HDU 3790 最短路径问题 (dijkstra算法)
摘要: 题意:找出输出的两点间最短路径,当最短路相等时输出最小费用.解题思路:定义一个结构体,里面定义两个数,一个记录权值,一个记录费用.dis数组是记录当前节点的权值和费用,map就不用说了.在松弛操作里面判断路径是否相等,若相等则判断其费用是否最小.本题还有一个很坑的地方,就是要判重,这个很重要.本题交了3次,第一次为wa,原因是没有判重,第二次是pe,一个很小的错误.View Code #include <iostream>using namespace std;const int INF=0x7ffffff;const int MAX=1000+10;int used[MAX];i 阅读全文
posted @ 2012-09-05 01:23 Keep Strive 阅读(293) 评论(0) 推荐(0)
 
hdu 1879继续畅通工程(最小生成树Prim)
摘要: 题意:计算出全省畅通需要的最低成本,本题是一个Prim算法的模版题,加一个判断就可以了.当该路短已经存在时就令其为0.连接:http://acm.hdu.edu.cn/showproblem.php?pid=1879View Code #include <iostream>using namespace std;const int INF=0x7ffffff;const int MAX=100+10;int map[MAX][MAX];int used[MAX];int dis[MAX];int sum;int n;void Prim(){ memset(used,0,sizeof 阅读全文
posted @ 2012-09-05 01:13 Keep Strive 阅读(150) 评论(0) 推荐(0)