1934. Black Spot(spfa)
水题 RE了N久 后来发现是无向图
- #include <iostream>
- #include<cstring>
- #include<algorithm>
- #include<stdlib.h>
- #include<vector>
- #include<cstdio>
- #include<queue>
- using namespace std;
- #define N 2000010
- #define INF 0xfffffff
- struct node
- {
- int u,v,next;
- double w;
- }ed[N<<];
- int t,head[N],vis[N],dis[N],pa[N],o[N];
- double p[N];
- int n,m;
- void init()
- {
- t = ;
- memset(head,-,sizeof(head));
- }
- void add(int u,int v,int w)
- {
- ed[t].u = u;
- ed[t].v = v;
- ed[t].w = w;
- ed[t].next = head[u];
- head[u] = t++;
- }
- void spfa(int s,int e)
- {
- memset(vis,,sizeof(vis));
- int i;
- for(i = ; i <= n ; i++)
- {
- dis[i] = INF;
- p[i] = ;
- }
- queue<int>q;
- dis[s] = ;
- p[s] = ;
- q.push(s);
- while(!q.empty())
- {
- int u = q.front();
- q.pop();
- vis[u] = ;
- for(i = head[u] ; i != - ; i = ed[i].next)
- {
- int v = ed[i].v;
- double w = ed[i].w;
- if(dis[v]>=dis[u]+)
- {
- if(dis[v]==dis[u]+)
- {
- if(p[v]<p[u]*w/100.0)
- {
- p[v] = p[u]*w/100.0;
- pa[v] = u;
- }
- }
- else
- {
- dis[v] = dis[u]+;
- p[v] = p[u]*w/100.0;
- pa[v] = u;
- }
- if(!vis[v])
- {
- vis[v] = ;
- q.push(v);
- }
- }
- }
- }
- printf("%d %lf\n",dis[e],-p[e]);
- int x = pa[e],g=;
- o[g] = e;
- while(x!=s)
- {
- g++;
- o[g] = x;
- x = pa[x];
- }
- g++;
- o[g] = s;
- for(i = g ; i > ; i--)
- printf("%d ",o[i]);
- printf("%d\n",o[]);
- }
- int main()
- {
- int i;init();
- int a,b;
- scanf("%d%d",&n,&m);
- scanf("%d%d",&a,&b);
- for(i = ; i <= m ; i++)
- {
- int u,v;
- double w;
- scanf("%d%d%lf",&u,&v,&w);
- add(u,v,-w);
- add(v,u,-w);
- }
- spfa(a,b);
- return ;
- }
1934. Black Spot(spfa)的更多相关文章
- 1210. Kind Spirits(spfa)
1210 简单模版题 敲个spfa还得瞟下模版.. #include <iostream> #include<cstdio> #include<cstring> # ...
- 1450. Russian Pipelines(spfa)
1450 水题 最长路 #include <iostream> #include<cstdio> #include<cstring> #include<alg ...
- 1930. Ivan's Car(spfa)
1930 简单二维 标记一下是上坡还是下坡 #include <iostream> #include<cstdio> #include<cstring> #incl ...
- Linux设备管理(二)_从cdev_add说起
我在Linux字符设备驱动框架一文中已经简单的介绍了字符设备驱动的基本的编程框架,这里我们来探讨一下Linux内核(以4.8.5内核为例)是怎么管理字符设备的,即当我们获得了设备号,分配了cdev结构 ...
- windows消息机制详解(转载)
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的 ...
- 【JUC】JDK1.8源码分析之SynchronousQueue(九)
一.前言 本篇是在分析Executors源码时,发现JUC集合框架中的一个重要类没有分析,SynchronousQueue,该类在线程池中的作用是非常明显的,所以很有必要单独拿出来分析一番,这对于之后 ...
- Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档 ...
- Linux内核--网络栈实现分析(十)--网络层之IP协议(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7552455 更多请查看专栏,地 ...
- Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地 ...
随机推荐
- 微软职位内部推荐-Sr. Dev Lead
微软近期Open的职位: JD 如果你想试试这个职位,请跟我联系,我是微软的员工,可以做内部推荐.发你的中英文简历到我的邮箱:Nicholas.lu.mail(at)gmail.com
- Asp.Net生命周期系列五
如果您看了我的前四篇文章,应该知道目前Http请求已经流到了HttpModule这个程序员手中了,而且我们可以注册自己的HttpModule并且可以在里面注册一些事件来控制这个Http请求,但是到目前 ...
- LintCode-Kth Prime Number.
Design an algorithm to find the kth number such that the only prime factors are 3, 5, and 7. The eli ...
- 工程移除CocoaPods依赖库
http://zanderzhang.gitcafe.io/2015/09/26/工程移除CocoaPods依赖库/ 点这里--->CocoaPods安装和使用教程 当我们工程安装很多第三方开源 ...
- c# 应用程序部署发布
转自:http://blog.csdn.net/chenyujing1234/article/details/7558185 最近做了C#软件,发布给客户用时,发现客户运行不起来,原因是客户电脑上没有 ...
- python 基于小顶堆实现随机抽样
起因:之前用蓄水池抽样,算法精简,但直观性很差. 所以这次采用了简单的,为没一个行,赋值一个随机值,然后取 最大的K个作为,随机样本. 基本思路:为每一个行(record,记录,实体) 赋一个rand ...
- [转载]C#中字典集合的两种遍历
Dictionary<string, string> dictionary = new Dictionary<string,string>(); foreach (string ...
- asynDBcenter(复习)
asynDBCenter asynDBCenter是GS和DBCenter之间的模块,有了他GS访问数据库就是异步的了,以前是同步的,加入某个操作很耗时那么GS就在那等待这个返回值. .对于std:: ...
- android2.3 -添加自定义按键:作唤醒功能 .
最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠. 驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源! \arch\arm\mach-s5p ...
- winform DataGridView控件开发经验
1.不让DataGridView控件自动生成列 设置AutoGenerateColumns 为false. dgTicket.AutoGenerateColumns = false; //将自动生成列 ...