BZOJ 2763: [JLOI2011]飞行路线 spfa dp
题目链接:
http://www.lydsy.com/JudgeOnline/problem.php?id=2763
题解:
d[x][kk]表示从s到x用了kk次免费机会的最少花费。
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<vector>
#include<cstring>
#define mp make_pair
#define X first
#define Y second
using namespace std; const int maxn = 10000; int n, m, k;
vector<pair<int, int> > G[maxn]; int d[maxn][22];
bool inq[maxn][22];
void spfa(int s) {
memset(d, 0x7f, sizeof(d));
memset(inq, 0, sizeof(inq));
queue<pair<int,int> > Q;
d[s][0] = 0, inq[s][0] = 1, Q.push(mp(s,0));
while (!Q.empty()) {
int u = Q.front().X,kk=Q.front().Y;
Q.pop();
inq[u][kk] = 0;
for (int i = 0; i < G[u].size(); i++) {
int v = G[u][i].X, w = G[u][i].Y;
if (d[v][kk]>d[u][kk] + w) {
d[v][kk] = d[u][kk] + w;
if (!inq[v][kk]) {
inq[v][kk] = 1, Q.push(mp(v, kk));
}
}
if (kk + 1 <= k&&d[v][kk + 1] > d[u][kk]) {
d[v][kk + 1] = d[u][kk];
if (!inq[v][kk + 1]) {
inq[v][kk + 1] = 1, Q.push(mp(v, kk + 1));
}
}
}
}
} void init() {
for (int i = 0; i < n; i++) G[i].clear();
} int main() {
while (scanf("%d%d%d", &n, &m, &k) == 3) {
init();
int s, t;
scanf("%d%d", &s, &t);
for (int i = 0; i < m; i++) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
G[u].push_back(mp(v, w));
G[v].push_back(mp(u, w));
}
spfa(s);
printf("%d\n", d[t][k]);
}
return 0;
}
BZOJ 2763: [JLOI2011]飞行路线 spfa dp的更多相关文章
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1694 Solved: 635[Submit][Statu ...
- 分层图+最短路算法 BZOJ 2763: [JLOI2011]飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- poj 2763: [JLOI2011]飞行路线(spfa分层图最短路)
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2156 Solved: 818 [Submit][Statu ...
- Bzoj 2763: [JLOI2011]飞行路线 dijkstra,堆,最短路,分层图
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1728 Solved: 649[Submit][Statu ...
- BZOJ 2763: [JLOI2011]飞行路线 最短路
2763: [JLOI2011]飞行路线 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ 2763: [JLOI2011]飞行路线 【分层图模板】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 2763: [JLOI2011]飞行路线 Time Limit: 10 Sec M ...
- BZOJ 2763: [JLOI2011]飞行路线 【SPFA】
Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格.Al ...
- bzoj 2763: [JLOI2011]飞行路线【分层图+spfa】
为什么早年的题总是从0开始标号啊--又zz了一次WA 分层图的题只有这一个套路吧,建分层图,然后优化时间是分层跑spfa然后层与层之间单独跑即可 #include<iostream> #i ...
随机推荐
- DWZ(JUI) 教程 普通表单提交
一类是普通的表单提交,另一类就是列表页面的表单提交,主要是用来查询搜索列表使用的.今天我就简单介绍一下前者. 这是官网上的普通列表页面, <div class="pageContent ...
- C#中ToString和Formate格式大全
C#中ToString格式大全 stringstr1 =); //result: 56,789.0 stringstr2 =); //result: 56,789.00 stringstr3 =); ...
- Js中把JSON字符串转换为JSON对象(eval()、new Function())
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...
- Cocos2d-JS中的精灵菜单和图片菜单
精灵菜单的菜单项类是cc.MenuItemSprite,图片菜单的菜单项类是cc.MenuItemImage.由于cc.MenuItemImage继承于cc.MenuItemSprite,所以图片菜单 ...
- RSA 加解密
#region RSA public static byte[] GetBytes(String num) { BigInteger n = ); String s = n.ToString(); & ...
- Android开发之切换activity动画overridePendingTransition
原文地址:http://blog.sina.com.cn/s/blog_706c449f01011s3v.html overridePendingTransition 在startActivity() ...
- Fedora 19 配置参考
1. 安装完Fedora 19之后,第一件事不是升级系统,而是添加源. 下载我配置好的源,非常全面,适用Fedora 19 x86_64.点我下载 打开终端,切换到repo.zip所在目录:mv re ...
- 【转】理解依赖注入(IOC)和学习Unity
IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection).作用:将各层的对象以松耦合的方式组织在一起,解耦,各 ...
- HTML5-WebWorker
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JQuery 表格 隔行换色 和鼠标滑过的样式
$(document).ready(function () { $(".Pub_TB tbody tr:even td").css("background-color&q ...