http://acm.zju.edu.cn/onlinejudge/showProblem.do?

problemId=655

没有理解清题意就硬套模板。所以WA了好几次。

解析看我的还有一篇http://blog.csdn.net/u011026968/article/details/35579035

贴代码

#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
#define ll long long #define INF2 0x03F3F3F3F
#define INF 1.0
const int N=100+10;
int path[N];
bool vis[N];
double cost[N][N],lowcost[N],h[N];
double ans;
int n,m;
void Dij()
{
int i,j,beg=0;
double mmin;
memset(vis,0,sizeof(vis));
vis[beg]=1;
for(i=0;i<n;i++)
{
lowcost[i]=cost[beg][i];path[i]=beg;
}
lowcost[beg]=0;
path[beg]=-1;
int pre=beg;
for(i=1;i<n;i++)
{
mmin=-1;
for(j=0;j<n;j++)
if(vis[j] == 0 && lowcost[pre]*cost[pre][j]>lowcost[j])
{
lowcost[j]=lowcost[pre]*cost[pre][j];
path[j]=pre;
}
for(j=0;j<n;j++)
if(vis[j]==0 && lowcost[j]>mmin)
{
mmin=lowcost[j];
pre=j;
}
vis[pre]=1;
}
} void Init()
{
ans=0.0;
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++)
cost[i][j]=-1,lowcost[i]=0;
} void Addedge()
{ int u,v;
double tmp;
h[0]=0;
for(int i=1;i<n;i++)
scanf("%lf",&h[i]);
for(int i=0;i<m;i++)
{
scanf("%d%d%lf",&u,&v,&tmp);
if(u == n)u=0;
if(v == n)v=0;
if(cost[u][v]<1.0-tmp)//////////
cost[u][v]=cost[v][u]=1.0-tmp;
}
}
/*double dfs(int i,double ret)
{
if(path[i])return dfs(path[i],ret)*cost[path[i]][i];
return ret*cost[0][i];
}*/
int main()
{
//freopen("zoj1655.txt","r",stdin);
while(~scanf("%d%d",&n,&m))
{
Init();
Addedge();
Dij();
for(int i=1;i<n;i++)
{
//ans+=dfs(i,h[i]);
ans+=h[i]*1.0*lowcost[i];
}
printf("%.2lf\n",ans);
}
return 0;
}

zoj 1655 单源最短路 改为比例+最长路的更多相关文章

  1. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  2. [ACM_图论] Domino Effect (POJ1135 Dijkstra算法 SSSP 单源最短路算法 中等 模板)

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  3. 单源最短路模板(dijkstra)

    单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 #include<iostream> #include<cstdio> #includ ...

  4. 用scheme语言实现SPFA算法(单源最短路)

    最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...

  5. 单源最短路_SPFA_C++

    当我们需要求一个点到其它所有点的最短路时,我们可以采用SPFA算法 代码特别好写,而且可以有环,但是不能有负权环,时间复杂度是O(α(n)n),n为边数,α(n)为n的反阿克曼函数,一般小于等于4 模 ...

  6. 【UVA1416】(LA4080) Warfare And Logistics (单源最短路)

    题目: Sample Input4 6 10001 3 21 4 42 1 32 3 33 4 14 2 2Sample Output28 38 题意: 给出n个节点m条无向边的图,每条边权都为正.令 ...

  7. 【算法系列学习】Dijkstra单源最短路 [kuangbin带你飞]专题四 最短路练习 A - Til the Cows Come Home

    https://vjudge.net/contest/66569#problem/A http://blog.csdn.net/wangjian8006/article/details/7871889 ...

  8. 模板C++ 03图论算法 1最短路之单源最短路(SPFA)

    3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...

  9. 2018/1/28 每日一学 单源最短路的SPFA算法以及其他三大最短路算法比较总结

    刚刚AC的pj普及组第四题就是一种单源最短路. 我们知道当一个图存在负权边时像Dijkstra等算法便无法实现: 而Bellman-Ford算法的复杂度又过高O(V*E),SPFA算法便派上用场了. ...

随机推荐

  1. 鸟哥的linux私房菜

    http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php

  2. ASP.NET-MVC中Entity和Model之间的关系

    Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...

  3. 51 nod 1693 水群

    1693 水群 基准时间限制:0.4 秒 空间限制:524288 KB 分值: 160  难度:6级算法题  收藏  关注 总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有 ...

  4. MFC 加入背景图片并让控件背景透明

    /*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) {  // TODO: 在此加入消息处理程序代码和/或调用默认值  CDialog::OnEraseB ...

  5. Android中通过ViewHelper.setTranslationY实现View移动控制(NineOldAndroids开源项目)

    我们知道有不少开源project,能实现非常多不错的效果.前几天,我看了一个效果,刚好项目中也用到了这个jar包. 没事挖一挖 学一学(一说到挖一挖.那么问题来了.挖掘机技术究竟哪家强 ),看看不错的 ...

  6. HDU5638 / BestCoder Round #74 (div.1) 1003 Toposort 线段树+拓扑排序

    Toposort   问题描述 给出nn个点mm条边的有向无环图. 要求删掉恰好kk条边使得字典序最小的拓扑序列尽可能小. 输入描述 输入包含多组数据. 第一行有一个整数TT, 表示测试数据组数. 对 ...

  7. hdu_4707

    算是水题一道吧,我也没有建树,看别人又用vector,又用bfs,dfs的,对vector不熟,所以就模拟了一下 #include<iostream> #include<string ...

  8. [bzoj 1398] Vijos1382寻找主人 Necklace 解题报告(最小表示法)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1398 题目: Description 给定两个项链的表示,判断他们是否可能是一条项链. ...

  9. Binary Indexed Tree

    我借鉴了这个视频中的讲解的填坑法,我认为非常易于理解.有FQ能力和基本英语听力能力请直接去看视频,并不需要继续阅读. naive 算法 考虑一个这样的场景: 给定一个int数组, 我们想知道它的连续子 ...

  10. windows模式编译

    //预编译,linker链接,Windows模式#pragma comment(linker,"/subsystem:\"windows\" /entry:\" ...