HDU 4318 Power transmission(最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=4318
题意:
给出运输路线,每条路线运输时都会损失一定百分比的量,给定起点、终点和初始运输量,问最后到达终点时最少损失多少量。
思路:
d[u]表示到达该点时剩余量的最大值。
将松弛条件修改为大时更新即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int maxn = +; int n,m,tot,s,t,M;
int head[maxn];
double d[maxn];
bool done[maxn]; struct node
{
int v,next;
double w;
}e[*maxn]; struct HeapNode
{
double d;
int u;
HeapNode(int u, double d):u(u),d(d){}
bool operator< (const HeapNode& rhs) const
{
return d < rhs.d;
}
}; void addEdge(int u, int v, double w)
{
e[tot].v = v;
e[tot].w = w;
e[tot].next = head[u];
head[u] = tot++;
} void dijkstra(int s)
{
priority_queue<HeapNode> Q;
for(int i=;i<=n;i++) d[i] = ;
d[s] = M;
memset(done,,sizeof(done));
Q.push(HeapNode(s,M));
while(!Q.empty())
{
HeapNode x = Q.top(); Q.pop();
int u = x.u;
if(done[u]) continue;
done[u] = true;
for(int i=head[u];i!=-;i=e[i].next)
{
int v = e[i].v;
if(d[v] < d[u] - d[u]*e[i].w/100.0)
{
d[v] = d[u] - d[u]*e[i].w/100.0;
Q.push(HeapNode(v,d[v]));
}
}
}
} int main()
{
//freopen("in.txt","r",stdin);
while(~scanf("%d",&n))
{
tot = ;
memset(head,-,sizeof(head));
for(int i=;i<=n;i++)
{
scanf("%d",&m);
while(m--)
{
int u;double w;
scanf("%d%lf",&u,&w);
addEdge(i,u,w);
}
}
scanf("%d%d%d",&s,&t,&M);
dijkstra(s);
printf("%.2f\n",M-d[t]);
}
return ;
}
HDU 4318 Power transmission(最短路)的更多相关文章
- 最短路(Dijkstra) HDOJ 4318 Power transmission
题目传送门 题意:起点s到终点t送电,中途会有损耗,问最小损耗是多少 分析:可以转换为单源最短路问题,用优先队列的Dijkstra版本,d[]表示从s出发到当前点的最小损耗,用res保存剩下的电量.当 ...
- light oj 1155 - Power Transmission【拆点网络流】
1155 - Power Transmission PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- uva 10330 - Power Transmission(网络流)
uva 10330 - Power Transmission 题目大意:最大流问题. 解题思路:増广路算法. #include <stdio.h> #include <string. ...
- C2. Power Transmission (Hard Edition)(线段相交)
This problem is same as the previous one, but has larger constraints. It was a Sunday morning when t ...
- C2. Power Transmission (Hard Edition) 解析(思維、幾何)
Codeforce 1163 C2. Power Transmission (Hard Edition) 解析(思維.幾何) 今天我們來看看CF1163C2 題目連結 題目 給一堆點,每兩個點會造成一 ...
- HDU 5294 Tricks Device 最短路+最大流
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5294 题意: 给你个无向图: 1.求最少删除几条边就能破坏节点1到节点n的最短路径, 2.最多能删除 ...
- HDU 3339 In Action 最短路+01背包
题目链接: 题目 In Action Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2017多校第10场 HDU 6181 Two Paths 次短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6181 题意:给一个图,求出次短路. 解法:我之前的模板不能解决这种图,就是最短路和次短路相等的情况,证 ...
- HDU 5889 Barricade(最短路+最小割)
http://acm.hdu.edu.cn/showproblem.php?pid=5889 题意: 给出一个图,帝国将军位于1处,敌军位于n处,敌军会选择最短路到达1点.现在帝国将军要在路径上放置障 ...
随机推荐
- 大数据权限管理工具 Apache Ranger 初识
资料参考: Apache Ranger – Introduction http://ranger.apache.org/ 阿里云 Ranger简介 Apache Ranger初识 - 阿里云 大数据权 ...
- Requests+BeautifulSoup+正则表达式爬取猫眼电影Top100(名称,演员,评分,封面,上映时间,简介)
# encoding:utf-8 from requests.exceptions import RequestException import requests import re import j ...
- 洛谷 P1010 幂次方
做了好久,递归拆吧 #include<iostream>#include<cstdio>#include<cmath>using namespace std;int ...
- Subversion版本控制系统的安装和操作.
SVN的简单介绍 SVN是Subversoin的简称,是一个开源的版本控制系统 Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,他可以记录每一次文件和目录的 ...
- linux+nginx+mysql+php环境下,安装ecshop
我们在工作过程中要经常和电商打交道,所以,学会安装ecshop是必须的. 下面我们来介绍一下ecshop的安装. nginx和php安装整合,在我前面的文章中有提到,这里就不做赘述了.mysql可以使 ...
- sitemap index
https://docs.djangoproject.com/en/2.1/ref/contrib/sitemaps/ very good
- MySQL修改库名的方法
先创建新的库,再用RENAME TABLE 语句移动旧库中的表到新库,最后删除旧库. (root@localhost) [(none)] create database mydb_2; Query O ...
- curl 用法总结
curl -g -k --noproxy '*' -s -o /dev/null -w '%{http_code}' http://172.25.112.34/identity/v3 KSURL=ht ...
- yum指定安装目录
纯粹做笔记 yum -c /etc/yum.conf --installroot=/opt/test/ --releasever=/ install lrzsz
- oracle基础——内存管理、优化
内存图解: 自动管理:11g:AMM 10g:ASMM SGA(system global area):由所有服务进程和后台进程共享 PGA(program global area): 由每个服务 ...