题解:

spfa最短路径

dp[i][j]表示到i,用了j掌权

然后转移

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,m,k,in1,in2,in3,f[N][N],ans=1e9,used[N];
vector<pair<int,int> > graph[N];
queue<int> q;
void spfa(int s)
{
for (int i=;i<=n;i++)
for (int j=;j<=k;j++)f[i][j]=1e9;
f[s][]=;
used[s]=;
q.push(s);
while (!q.empty())
{
int x=q.front(),len=graph[x].size();
q.pop();
used[x]=;
for (int i=;i<len;i++)
{
int relaxed=;
int t=graph[x][i].first,w=graph[x][i].second;
for (int j=;j<=k;j++)
{
if(f[t][j]>f[x][j]+w) f[t][j]=f[x][j]+w,relaxed=;
if(j&&f[t][j]>f[x][j-]+(w>>))
f[t][j]=f[x][j-]+(w>>),relaxed=;
}
if (relaxed&&!used[t])
{
used[t]=;
q.push(t);
}
}
}
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for (int i=;i<=m;i++)
{
scanf("%d%d%d",&in1,&in2,&in3);
graph[in1].push_back(make_pair(in2,in3));
graph[in2].push_back(make_pair(in1,in3));
}
spfa();
for(int i=;i<=k;i++)ans=min(ans,f[n][i]);
printf("%d\n",ans);
}

bzoj2662的更多相关文章

  1. 分层图最短路【bzoj2662】[BeiJing wc2012]冻结

    分层图最短路[bzoj2662][BeiJing wc2012]冻结 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" ...

  2. BZOJ2662 [BeiJing wc2012]冻结

    网上的题解都是分层图+spfa或者dijkstra 我觉得dijk太难写了,懒得写,看了一下数据范围$N=50$,这显然是出题人勾引人犯罪 我决定使用floyd的做法,令$f[i][j][t](k)$ ...

  3. BZOJ2662[BeiJing wc2012]冻结——分层图最短路

    题目描述 “我要成为魔法少女!”     “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„”     在这个愿望被实现以后的世界里,人们享受着魔法卡片(Spe ...

  4. BZOJ2662: [BeiJing wc2012]冻结 spfa+分层图

    Description “我要成为魔法少女!”     “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„”        在这个愿望被实现以后的世界里,人们享 ...

  5. 【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!

    我都不好意思发题解了,看这篇博吧.(飞行路线的,基本一样) http://blog.csdn.net/vmurder/article/details/40075989 同学做了好久.我害怕题里有坑,又 ...

  6. bzoj2662冻结

    题目链接 话说为什么出题人老是卡$SPFA$啊$qwq$ 然而$SPFA$硬是让本宝宝写成了$dij$ 分情况讨论就好 /*************************************** ...

  7. BZOJ2662:[BJWC2012]冻结(分层图最短路)

    Description “我要成为魔法少女!”     “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„”        在这个愿望被实现以后的世界里,人们享 ...

  8. 【最短路】【Heap-Dijkstra】【分层图】bzoj2662 [BeiJing wc2012]冻结

    裸的分层图最短路. #include<cstdio> #include<cstring> #include<queue> #include<algorithm ...

  9. 【bzoj2662】[BeiJing wc2012]冻结 分层图Spfa

    原文地址:http://www.cnblogs.com/GXZlegend 题目描述 “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„ ...

随机推荐

  1. 51NOD 1133 不重叠的线段

    1133 不重叠的线段   X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠).   例如:[1 5][2 3][3 6],可以选[2 ...

  2. hdu 2824 The Euler function 欧拉函数打表

    The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  3. windows服务部署

    1.新建windows服务项目 2.编辑业务代码 我这里只写2句记录文本的测试代码 using System; using System.IO; using System.ServiceProcess ...

  4. jstl中<c:forEach>的用法

    在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...

  5. js 几个重要的特性

    背景: 语法借鉴    java 函数借鉴    scheme 原型继承借鉴    self 正则表达式借鉴    Perl 1.动态语言 函数的定义和调用  形参与实参不需要一致 形参可由 argu ...

  6. 30分钟了解如何使用Kafka

    Kafka是当下对海量数据提供了最佳支持的MQ中间件,无论是高并发的处理,还是依托zookeeper的水平拓展都有不俗的特性.由于公司最近也在尝试如何将它应用到开发中以对业务更好的支撑,因此特地分享一 ...

  7. 小橙书阅读指南(十三)——连通性算法(union-find)

    上一章我大概说明了什么是图论以及无向图的基础概念,本章我们要研究一种更普遍的算法——连通性算法.它属于图论的分支,也是一种抽象算法.在深入算法之前,我们先提出一个具体的问题:假设在空间中存在N个点,我 ...

  8. 算法笔记--树的直径 && 树形dp && 虚树 && 树分治 && 树上差分 && 树链剖分

    树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点. 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c ...

  9. CentOS配置iptables规则并使其永久生效

    1. 目的 最近为了使用nginx,配置远程连接的使用需要使用iptable是设置允许外部访问80端口,但是设置完成后重启总是失效.因此百度了一下如何设置永久生效,并记录.  2. 设置 2.1 添加 ...

  10. jsp post/get中接处理

    jsp post/get中接处理 以参数:username为便 post接收中文比get接收中文要方便多了. <%@ page contentType="text/html;chars ...