[BJWC2012]冻结
[BJWC2012]冻结
#include<bits/stdc++.h>
using namespace std;
const int _=5000;
int re(){
int x=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*w;
}
int n,m,k,cnt,ans=1e9;
int h[_],d[_];
bool vis[_];
struct node{int id,d;};
struct edge{int to,next,w;}e[400000];
bool operator <(node a,node b){return a.d>b.d;}
priority_queue<node>q;
void link(int u,int v,int w){
e[++cnt]=(edge){v,h[u],w};h[u]=cnt;
}
void dij(){
memset(d,63,sizeof(d));
d[1]=0;q.push((node){1,0});
while(!q.empty()){
int u=q.top().id;q.pop();vis[u]=1;
for(int i=h[u];i;i=e[i].next){
int v=e[i].to;
if(d[v]>d[u]+e[i].w){
d[v]=d[u]+e[i].w;
if(!vis[v])q.push((node){v,d[v]});
}
}
}
}
int main(){
n=re(),m=re(),k=re();
while(m--){
int a=re(),b=re(),c=re();
link(a,b,c);link(b,a,c);
for(int i=1;i<=k;i++){
link(i*n+a,i*n+b,c);
link(i*n+b,i*n+a,c);
link((i-1)*n+a,i*n+b,c>>1);
link((i-1)*n+b,i*n+a,c>>1);
}
}
dij();
for(int i=1;i<=k+1;i++)
ans=min(ans,d[i*n]);
printf("%d\n",ans);
return 0;
}
[BJWC2012]冻结的更多相关文章
- 洛谷 P4822 [BJWC2012]冻结 题解
P4822 [BJWC2012]冻结 题目描述 "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于 ...
- BZOJ2662:[BJWC2012]冻结(分层图最短路)
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- 分层图【p4822】[BJWC2012]冻结
Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于卡片之中„„" ...
- P4822 [BJWC2012]冻结
思路 和p4568类似的分层图最短路 从上一层向下一层连边权/2的边即可 代码 #include <cstdio> #include <algorithm> #include ...
- [洛谷P4822][BJWC2012]冻结
题目大意:有一张$n(n\leqslant50)$个点$m(m\leqslant1000)$条边的无向图,可以使得$k$条边使得边权减半,求最短路 题解:分层图最短路 卡点:无 C++ Code: # ...
- [BJWC2012]冻结 分层图最短路
昨晚飞行路线之后,这道题就应该能一眼切了 题目当然也不难,跑一遍分层图最短路即可 Code: #include<cstring> #include<algorithm> #in ...
- 洛谷 P4822 [BJWC2012]冻结
之前没学分层图,所以先咕了一下hiahiahia. 学完分层图了回来水写题解了. 这道题要用分层图来解.分层图就是在我们决策的时候,再建k层图,一共k+1层,层与层之间是有向边(这个很重要的),权值为 ...
- 分层图初探 By cellur925
因为最近测试遇到了分层图的题目,所以稍微学了一下==. 这种题目一般是来解决最短路边权有变化/有k条免费路的问题的.他们基本都一般有两种实现方式:dp+最短路/分层图+最短路 当然你如果非要说他们是一 ...
- csp-s 考前刷题记录
洛谷 P2615 神奇的幻方 洛谷 P2678 跳石头 洛谷 P1226 [模板]快速幂||取余运算 洛谷 P2661 信息传递 LOJ P10147 石子合并 LOJ P10148 能量项链 LOJ ...
随机推荐
- 系统封装 如何加载PE到Easyboot进行合盘
1 直接使用别人的PE. 如何加载PE到Easyboot首先需要知道验证你下载的PE的ISO镜像能否启动 如果答案是可以的,以自由天空的MINIPE为例,虽然可以启动,但是完全没有菜单提示,我们想要作 ...
- python raise assert
class MyException(Exception): def __init__(self,error_msg): self.error_msg=error_msg def __str__(sel ...
- javascript - 活动倒计时(天、时、分、秒)
计数时: 结束时: 示例: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Java Swing界面编程(21)---事件处理:窗口事件
WindowLIstener是专门处理窗口的事件监听窗口.一个窗口的全部变化.如窗口的打开.关闭等都能够使用这个接口进行监听. 实现WIndowListener: package com.beyole ...
- EFFECTIVE JAVA 第一天 静态工厂方法
静态工厂方法:(这里指的是就是普通static方法),类可以通过静态工厂方法提供给它的客户端,而不是通过构造器.提供静态工厂方法而不是公有构造器,这样做有几大优势. 在类的实现中使用了API的类被称为 ...
- VMware下的ubuntu12.04不识别usb设备问题的解决方法
情况一:U盘通过USB连接到Ubuntu后,点击VM—removable devices,无usb信息? 解决方法: 在“服务”中启动“VMware USB Arbitration Service”服 ...
- 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制
[原创]分布式之数据库和缓存双写一致性方案解析(三) 正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...
- C#中的里氏替换原则
里氏转换原则 子类可以赋值给父类对象 父类对象可以强制转化为对应的子类对象 里氏替换原则直观理解就是"子类是父类",反过来就说不通了. 就像男人是人对的,但人是男人就不对了. 这样 ...
- ssh隧道远程连接mysql
有时候比如一些云主机,没有开放3306端口,这里可以用ssh隧道来连接数据库,更加安全 注意点: 1.本地ssh可以登录远程服务器,(密码或者秘钥) 2.远程数据库需要赋权限给隧道端的ip 命令: s ...
- Hadoop datanode无法启动
原因是多次 hadoop namenode -format 导致 datanode 的version 里的Cluster-Id 不一致 这个Cluster-Id的位置在: 自己设置的数据临时文件/ ...