[BZOJ] 2662: [BeiJing wc2012]冻结
https://www.lydsy.com/JudgeOnline/problem.php?id=2662
第一次写分层图(捂脸)
一开始真的naive地建图了,T到飞起..
可以省下建图的空间,直接在dis数组上拓展一维,同时维护点的编号和高度。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue> using namespace std; inline int rd(){
int ret=,f=;char c;
while(c=getchar(),!isdigit(c))f=c=='-'?-:;
while(isdigit(c))ret=ret*+c-'',c=getchar();
return ret*f;
} const int MAXN=*; struct Edge{
int next,to,w;
}e[];
int ecnt,head[MAXN];
inline void add(int x,int y,int w){
e[++ecnt].next = head[x];
e[ecnt].to = y;
e[ecnt].w = w;
head[x] = ecnt;
} int n,m,num; queue<int> Q,Qk;
int dis[MAXN][],inq[MAXN][];
void spfa(){
memset(dis,0x3f,sizeof(dis));
Q.push();Qk.push();dis[][]=;inq[][]=;
while(!Q.empty()){
int top=Q.front();Q.pop();int tmp=Qk.front();Qk.pop();
inq[top][tmp]=;
for(int i=head[top];i;i=e[i].next){
int v=e[i].to;
if(dis[v][tmp]>dis[top][tmp]+e[i].w){
dis[v][tmp]=dis[top][tmp]+e[i].w;
if(!inq[v][tmp]) Q.push(v),Qk.push(tmp),inq[v][tmp]=;
}
if(tmp<num&&dis[v][tmp+]>dis[top][tmp]+(e[i].w>>)){
dis[v][tmp+]=dis[top][tmp]+(e[i].w>>);
if(!inq[v][tmp+]) Q.push(v),Qk.push(tmp+),inq[v][tmp+]=;
}
}
}
}
int main(){
n=rd();m=rd();num=rd();
int x,y,w;
for(int i=;i<=m;i++){
x=rd();y=rd();w=rd();
add(x,y,w);add(y,x,w);
}
spfa();
int ans=<<;
for(int i=;i<=num;i++)ans=min(ans,dis[n][i]);
cout<<ans;
return ;
}
[BZOJ] 2662: [BeiJing wc2012]冻结的更多相关文章
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
这道题和 BZOJ 2763飞行路线 几乎一模一样..然后飞行路线我是1A,这道题WA了4次,我开始怀疑我的智商了.. ---------------------------------------- ...
- Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路
2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 647 Solved: 348[Submit][Sta ...
- bzoj 2662 [BeiJing wc2012]冻结——分层图
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2662 这种的都是分层图. #include<iostream> #include ...
- bzoj 2662: [BeiJing wc2012]冻结【分层图+spfa】
死活想不到分层图emmm 基本想法是建立分层图,就是建k+1层原图,然后相邻两层之间把原图的边在上一层的起点与下一层的终点连起来,边权为val/2,表示免了这条边的边权,然后答案就是第0层的s到k层的 ...
- BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路
BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...
- 分层图最短路【bzoj2662】[BeiJing wc2012]冻结
分层图最短路[bzoj2662][BeiJing wc2012]冻结 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" ...
- bzoj 2659: [Beijing wc2012]算不出的算式
2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec Memory Limit: 128 MB Description 算不出的算式背景:曾经有一个老掉牙的游 ...
- BZOJ 2661: [BeiJing wc2012]连连看 费用流
2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...
- BZOJ 2663: [Beijing wc2012]灵魂宝石
2663: [Beijing wc2012]灵魂宝石 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 261 Solved: 108[Submit][S ...
随机推荐
- Mysql 主从(转)
转自 http://blog.csdn.net/hguisu/article/details/7325124
- 超简单 Promise封装小程序ajax 超好用 以及封装登录
//网络类 //封装网络请求 const ajax = (ajaxData, method) => { wx.showLoading({ title: '加载中', mask: true }); ...
- 分布式通信-tcp/ip socket
Socket通讯的过程 Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受) ...
- iOS蓝牙开发总结-4
蓝牙开发总结 只要熟悉蓝牙的流程,和蓝牙中每一个角色的作用,其实蓝牙通讯并没有想象中的难 1.蓝牙中心CBCentralManager:一般指得是iPhone手机 2.设备(外设)CBPeripher ...
- C#静态类、静态构造函数,类与结构体的比较
一.静态类 静态类是不能实例化的,我们直接使用它的属性与方法,静态类最大的特点就是共享. 探究 public static class StaticTestClass{ public stati ...
- 最短路之Dijkstra(单源)HDU 2544
#include <iostream> using namespace std; ; ][]; ]; int middist; ]; void dijkstra(int n,int m) ...
- 60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)
今天开始我将写nodejs框架egg.js, react 实现的增删改查,文件上传等常用的b/s场景,这个将分3部分来写. 会让你在60分钟内快速 入口并应用~ 你应该用es6, node,或是ph ...
- WEB 前端菜鸟,感觉很迷茫,该怎么做?
前几天看到这样的问题 先说问题吧:感觉前端涉及到的东西太多了,自己也很浮躁,看了挺多书,可是代码缺敲得却不多.技术菜,又什么都想学,比如现在纠结要不要先学scss或者php或者angularjs,ba ...
- 项目在cocos 2.23移植到cocos 3.1.0所出现的bug
在建项目时一定要注意选择源代码!而不是预编译库 "extensions/ExtensionMacros.h”: No such file 项目右键-属性-配置属性-c/c++ - 常规-附加 ...
- cat 参数
-A 相当于-vET的整合参数 -E 将结尾的换行符$显示出来 -n 显示行号 -T 将tab键以^T显示出来 -v 列出一些看不出来的特殊字符