find the safest road
find the safest road
Time Limit : 10000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 23 Accepted Submission(s) : 12
#include<stdio.h>
#include<string.h>
#define MAX(x,y)(x>y?x:y)
const int MAXN=;
double map[MAXN][MAXN],d[MAXN];
int vis[MAXN];
int n;
void initial(){
memset(d,,sizeof(d));
memset(vis,,sizeof(vis));
}
void dijskra(int s){
initial();//写错位置了,应该每次都初始化
d[s]=;
while(true){
int k=-;
for(int i=;i<=n;i++)
if(!vis[i]&&(k==-||d[i]>d[k]))k=i;
if(k==-)break;
vis[k]=;
for(int i=;i<=n;i++)
d[i]=MAX(d[i],d[k]*map[k][i]);
}
}
int main(){int Q,a,b;
while(~scanf("%d",&n)){
memset(map,,sizeof(map));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%lf",&map[i][j]);
scanf("%d",&Q);
while(Q--){
scanf("%d%d",&a,&b);
dijskra(a);
if(d[b]==0.0)puts("What a pity!");
else printf("%.3lf\n",d[b]);
}
}
return ;
}
SPFA:
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
const int MAXN=;
const int MAXM=;
int head[MAXM],vis[MAXN];
double dis[MAXN];
struct Edge{
int from,to,next;
double value;
};
Edge edg[MAXM];
int n,edgnum;
queue<int>dl;
void initial(){
memset(dis,,sizeof(dis));
memset(vis,,sizeof(vis));
while(!dl.empty())dl.pop();
}
void add(int u,int v,double value){
Edge E;
E.from=u;E.to=v;E.value=value;E.next=head[u];
edg[edgnum]=E;
head[u]=edgnum++;
}
void SPFA(int sx){
initial();
dis[sx]=;
vis[sx]=;
dl.push(sx);
while(!dl.empty()){
int k=dl.front();
dl.pop();
vis[k]=;
for(int i=head[k];i!=-;i=edg[i].next){
int v=edg[i].to;
if(dis[k]*edg[i].value>dis[v]){
dis[v]=dis[k]*edg[i].value;
if(!vis[v])
dl.push(v),vis[v]=;
}
}
}
}
int main(){
int a,b,Q;
double v;
while(~scanf("%d",&n)){
memset(head,-,sizeof(head));
edgnum=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
scanf("%lf",&v);
add(i,j,v);
}
scanf("%d",&Q);
while(Q--){
scanf("%d%d",&a,&b);
SPFA(a);
if(dis[b]==0.0)puts("What a pity!");
else printf("%.3lf\n",dis[b]);
}
}
return ;
}
find the safest road的更多相关文章
- 杭电 1595 find the safest road
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdoj 1596 find the safest road【最短路变形,求最大安全系数】
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdu1569find the safest road(floyd变形求最大安全值)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU 1596 find the safest road (最短路)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU1596 find the safest road
find the safest road XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一 ...
- hdu1596find the safest road(floyd)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdu 1596 find the safest road (最短路径)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU.1596 find the safest road (Floyd)
HDU.1596 find the safest road (Floyd) 题意分析 与普通的最短路不太相同,本题有些许的变化. 1. 要找到由i到j最安全的路,故在求解的时候要保证mp[i][j]尽 ...
- HDU——1596find the safest road(邻接矩阵+优先队列SPFA)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
随机推荐
- fragment低版本
http://bbs.csdn.net/topics/390271980 Fragment框架开发东西确实很方便,但是恼人的是从4.0才开始支持.以前的版本必须用兼容模式开发,本人在网上找了大量资料, ...
- JIRA官方:JIRA报表与分析
访问重要的问题 JIRA系统内置的过滤器可以使你快速访问最重要的问题.通过保存和收藏自定义的过滤器,你可以随时了解项目和团队的优先级. 保持团队同步 创建一个过滤器,可以保存你的任何搜索条件.通过分享 ...
- linux之SQL语句简明教程---主键,外来键
主键 (Primary Key) 中的每一笔资料都是表格中的唯一值.换言之,它是用来独一无二地确认一个表格中的每一行资料.主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位) ...
- 步步学LINQ to SQL:使用LINQ检索数据【转】
[IT168 专稿]该系列教程描述了如何采用手动的方式映射你的对象类到数据表(而不是使用象SqlMetal这样的自动化工具)以便能够支持数据表之间的M:M关系和使用实体类的数据绑定.即使你选择使用了自 ...
- Iterator(迭代器模式)--(超市管理者)
这个Iterator就是收银台干的活. package patterns.actions.iterator; public interface IteratorList { boolean isEmp ...
- 2D转换
转换是CSS3 中具有颠覆性的特征之一,可以实现元素的位移.旋转.变形.缩放,甚至支持矩阵方式,配合即将学习的过渡和动画知识,可以取代大量之前只能靠Flash才可以实现的效果.在css3 当中,通过t ...
- JS中slice,splice,split的区别
不知道大家对slice,splice,splite是肿么样的感觉,反正我刚接触到这三个函数的时候整个人都懵了,因为一个个长的跟孪生兄弟似的,每次用的时候都会混,于是决定记下来,也给大家当个参考吧. s ...
- iOS设计模式解析(一)工厂方法
工厂方法:定义创建对象的借口,让子类决定实例化哪一个类.工厂方法是一个类的实例化延迟到了子类 例如 :Shoes厂有两个子类(Newbalance.Nike)构建类图如下: 代码实现: #i ...
- 转 jquery插件--241个jquery插件—jquery插件大全
241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...
- c 指针 及其位运算循环移动拔河比赛问题代码
week_2_day1_7.7 周一//用字符数组 来实现 字母大小写转换#include<stdio.h>void desc( char *a ,int n){ char *i ...