[BJWC2012]冻结 分层图最短路
昨晚飞行路线之后,这道题就应该能一眼切了
题目当然也不难,跑一遍分层图最短路即可
Code:
#include<cstring>
#include<algorithm>
#include<queue>
#include<string>
#include<cstdio>
using namespace std;
void setIO(string a){
freopen((a+".in").c_str(),"r",stdin);
} const int maxn=300000+4;
const double inf=2000000000;
int n,m,s,cnt,k,t;
int head[maxn],to[maxn],nex[maxn];
double val[maxn];
void addedge(int u,int v,double c){
nex[++cnt]=head[u], head[u]=cnt, to[cnt] = v, val[cnt] = c;
}
struct Node{
int u;
double dist;
Node(int u=0,double dist = 0.0):u(u),dist(dist){}
bool const operator<(Node v) const {
return v.dist<dist;
}
};
priority_queue<Node>Q;
double d[maxn];
bool done[maxn];
void dijkstra(){
memset(done,false,sizeof(done));
for(int i=0;i<maxn;++i) d[i]=inf;
Q.push(Node(s,0.0)); d[s]=0.0;
while(!Q.empty()){
int u=Q.top().u; Q.pop();
if(done[u]) continue;
done[u]=true;
for(int v=head[u];v;v=nex[v]){
if(d[u]+val[v]<d[to[v]]){
d[to[v]]=d[u]+val[v];
Q.push(Node(to[v],d[to[v]]));
}
}
}
}
int main(){
//setIO("input");
scanf("%d%d%d",&n,&m,&k);
s=1, t=maxn - 3;
for(int i=1;i<=m;++i){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
for(int j=0;j<=k;++j){
addedge(a,b,(double)c);
addedge(b,a,(double)c);
if(j<k) addedge(a,b+n,(double)c/2);
if(j<k) addedge(b,a+n,(double)c/2);
a+=n, b+=n;
}
}
for(int i=0;i<=k;++i) addedge(n+i*n,t,0);
dijkstra();
printf("%d",(int)d[t]);
return 0;
}
[BJWC2012]冻结 分层图最短路的更多相关文章
- BZOJ2662:[BJWC2012]冻结(分层图最短路)
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- BZOJ2662[BeiJing wc2012]冻结——分层图最短路
题目描述 “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享受着魔法卡片(Spe ...
- [bzoj2662 BeiJing wc2012] 冻结 (分层图+最短路)
传送门 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于卡片之中„„&q ...
- BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路
BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...
- 分层图最短路【bzoj2662】[BeiJing wc2012]冻结
分层图最短路[bzoj2662][BeiJing wc2012]冻结 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" ...
- poj3635Full Tank?[分层图最短路]
Full Tank? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7248 Accepted: 2338 Descri ...
- HDU 5669 线段树优化建图+分层图最短路
用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...
- BZOJ 2763 分层图最短路
突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include ...
- 【网络流24题】 No.15 汽车加油行驶问题 (分层图最短路i)
[题意] 问题描述:给定一个 N*N 的方形网格,设其左上角为起点◎, 坐标为( 1, 1), X 轴向右为正, Y轴向下为正, 每个方格边长为 1, 如图所示. 一辆汽车从起点◎出发驶向右下角终点▲ ...
随机推荐
- 在Jquery里格式化Date日期时间数据
在Jquery里格式化Date日期时间数据: $(function(){ //当前时间格式化yyyy-MM-dd HH:mm:ss alert(timeStamp2String(new Date(). ...
- python 3.x 学习笔记14 (socket_ssh and socket_文件传输)
ssh服务端 import socket,os server = socket.socket() server.bind(('localhost',6666)) server.listen() con ...
- 从 MVC 到微服务,技术演变的必经之路
架构模式演进 CGI 模式 图 1 CGI 出现于 1993 年,图 1 是 CGI 模式比较简单的结构图. MVC 模式 开源电商软件等都是采用 MVC 模式,MVC 模式是做软件开发必学和必经历的 ...
- django steps EASY WAY
django 2.0 python 3.6 =========django steps EASY WAY=========== reference: https://djangoforbeginner ...
- 【转载】tom的RUNSTATS测试工具
-- 创建 runstats 包.其中包括 3 个简单 API 调用: create or replace package runstats_pkg as procedure rs_start; pr ...
- 《鸟哥的Linux私房菜》笔记——01. 计算机概论
计算机的五大部分:输入单元.输出单元.CPU(控制单元(Control Unit).算数逻辑单元(ALU)).内存. CPU 的架构 精简指令集(Reduced Instruction Set Com ...
- FCC高级编程之Inventory Update
Inventory Update Compare and update the inventory stored in a 2D array against a second 2D array of ...
- 路飞学城Python-Day7(practise)
# 1.编码问题# i.请说明python2与python3中的默认编码是什么?# python2中的默认编码是ASCII码,只能识别英文等其他字符# python3中的默认编码是utf-8# ii. ...
- li自定义图标
/*自定义list的图标*/ li{ list-style-image: url(../img/21.JPG); }
- du -sh*查看当前目录下的文件夹大小
du -sh*查看当前目录下的文件夹大小 u 命令 用途 概述磁盘使用. 语法 du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] ...