[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 ...
随机推荐
- MyBatist庖丁解牛(四)
什么是MyBatis-Spring? MyBatis-Spring就是帮助你将MyBatis代码无缝的整合到Spring中.Spring将会加载必要的sqlSessionFactory类和sessio ...
- 转 Vlan
1.支持VLAN的交换机一定是三层交换机吗?2.Trunk配置了就可以VLAN间通信吗?3.Trunk具体怎么工作的?4.VLAN间的通信到底是怎么执行的?如果说给若干个纯二层环境加上若干个路由器,我 ...
- c 语言写的高级Oracle®数据库调优及监控工具
http://www.lab128.com.cn/lab128_why.html ###另外一款ORALCE Monitor tool freee https://www.myorasql.com/ ...
- Gym - 101147J Whistle's New Car 树上差分
J. Whistle's New Car time limit per test 15 seconds memory limit per test 512 megabytes input car.in ...
- html原样输出html代码
<xmp>********</xmp> 在网页上显示html代码标记<xmp></xmp>有时我们会将html代码显示在网页上,直接写会有问题, 如果我 ...
- 向fedora添加rpmfusion源
http://blog.csdn.net/pu1030/article/details/7332036 有的rpmfusion地址有版本问题,找到一个比较好用的摘录一下: 从http://downlo ...
- Android 视频录制 java.lang.RuntimeException: start failed.
//mRecorder.setVideoSize(320, 280); // mRecorder.setVideoFrameRate(5); mRecorder.setOutputFile(viodF ...
- spark常用参数
val conf = new SparkConf().setAppName("WordCount_groupBy").setMaster("local") // ...
- IOS照相
#import <UIKit/UIKit.h> @interface AddPictureViewController : UIViewController<UIImagePicke ...
- jsonwebapi请求头的设置
Content-Type: application/x-www-form-urlencoded; charset=UTF-8