bzoj 2662: [BeiJing wc2012]冻结
来源:互联网 发布:ubuntu更换源 编辑:程序博客网 时间:2024/05/14 13:54
最短路。
难得水题。
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int n,m,k,fst[60],num=0,dis[60][60],v[60],ans=2147483647;struct edge{ int x,y,c,n;}e[2010];void ins(int x,int y,int c){ e[++num]={x,y,c,fst[x]}; fst[x]=num;}int main(){ memset(dis,63,sizeof(dis)); scanf("%d%d%d",&n,&m,&k); for(int i=0;i<m;i++) { int x,y,c; scanf("%d%d%d",&x,&y,&c); ins(x,y,c); ins(y,x,c); } queue<int>q; q.push(1); v[1]=1; dis[0][1]=0; while(!q.empty()) { int x=q.front(); v[x]=0; for(int i=fst[x];i;i=e[i].n) { int y=e[i].y; for(int j=0;j<=k;j++) { if(dis[j][y]>dis[j][x]+e[i].c) { dis[j][y]=dis[j][x]+e[i].c; if(!v[y]) { v[y]=1; q.push(y); } } } for(int j=0;j<k;j++) { if(dis[j+1][y]>dis[j][x]+(e[i].c>>1)) { dis[j+1][y]=dis[j][x]+(e[i].c>>1); if(!v[y]) { v[y]=1; q.push(y); } } } } q.pop(); } for(int i=0;i<=k;i++) ans=min(ans,dis[i][n]); printf("%d\n",ans);}
阅读全文
0 0
- BZOJ 2662 BeiJing wc2012 冻结
- bzoj 2662: [BeiJing wc2012]冻结
- bzoj 2662: [BeiJing wc2012]冻结
- bzoj 2662: [BeiJing wc2012]冻结
- bzoj 2662: [BeiJing wc2012]冻结
- 2662: [BeiJing wc2012]冻结
- BZOJ 2662: [BeiJing wc2012]冻结 分层图 dijkstra
- bzoj 2662: [BeiJing wc2012]冻结 分层图最短路
- BZOJ2662: [BeiJing wc2012]冻结
- 【BeiJing wc2012】bzoj2662 冻结
- BZOJ2662: [BeiJing wc2012]冻结
- bzoj2662: [BeiJing wc2012]冻结
- 【OI做题记录】【BZOJ】【BeiJing wc2012】冻结
- BZOJ2662 [BeiJing wc2012]冻结 最短路
- 【bzoj2662】【BeiJing wc2012】冻结【最短路】
- bzoj2662: [BeiJing wc2012]冻结 分层图最短路
- 【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!
- bzoj 2659: [Beijing wc2012]算不出的算式
- 矩阵卷积的实际运算
- URLEncoder.encode(str,"编码") new URLDecoder().decode(str,"编码")
- 文章标题
- linux 清理cache/buff(缓存)
- hdu 5978 To begin or not to begin
- bzoj 2662: [BeiJing wc2012]冻结
- 如何快速找出一个数组中只出现一次的两个数,其他元素出现两次?保证时间复杂度O(n),空间复杂度O(1)
- AJAX提交到Handler.ashx一般处理程序返回json数据
- idea的web部署
- Conquer a New Region HDU
- hdu 5974 A Simple Math Problem
- redis安装使用配置
- 51 nod 1486 大大走格子 容斥原理+组合数学+dp
- 【Weblogic】Weblogic安装以及域配置