DongDong坐飞机
题目连接:https://ac.nowcoder.com/acm/contest/904/D
第一次研究了一下这种题型,还是比较好理解的,因为有半价次数的限制,所以要把每一中情况都写出来,dp[现在的位置][次数]推到dp[到达的位置][次数]和dp[到达的位置][次数+1]这两种情况,然后跑一下最短路就可以了
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef struct W_W{
int eend;
int weight;
int next;
}miao;
typedef struct W_w{
int eend;
int ci;
}wang;
ll minn(ll a,ll b){
if(a<b) return a;
return b;
}
miao x[];
int head[];
ll dp[][];
int vis[][];
int cnt=;
void add(int a,int b,int c){
x[cnt].eend=b;
x[cnt].weight=c;
x[cnt].next=head[a];
head[a]=cnt++;
}
ll spfa(int start,int eend,int k){
queue<wang> q1;
q1.push({,});
dp[][]=;
while(q1.size()){
int dang=q1.front().eend;
int ci=q1.front().ci;
//printf("+++%d %d %lld \n",dang,ci,dp[dang][ci]);
q1.pop();
vis[dang][ci]=;
for(int i=head[dang];i!=-;i=x[i].next){
int to=x[i].eend;
if(dp[to][ci]==-){
dp[to][ci]=dp[dang][ci]+x[i].weight;
if(vis[to][ci]==){
q1.push({to,ci});
vis[to][ci]=;
}
}
else{
if(dp[to][ci]>dp[dang][ci]+x[i].weight){
dp[to][ci]=dp[dang][ci]+x[i].weight;
if(vis[to][ci]==){
q1.push({to,ci});
vis[to][ci]=;
}
}
}
if(ci+<=k){
if(dp[to][ci+]==-){
dp[to][ci+]=dp[dang][ci]+x[i].weight/;
if(vis[to][ci+]==){
q1.push({to,ci+});
vis[to][ci+]=;
}
}
else{
if(dp[to][ci+]>dp[dang][ci]+x[i].weight/){
dp[to][ci+]=dp[dang][ci]+x[i].weight/;
if(vis[to][ci+]==){
q1.push({to,ci+});
vis[to][ci+]=;
}
}
}
}
}
}
// for(int i=1;i<=eend;i++){
// for(int j=0;j<=k;j++){
// printf("(%d %d) %lld ",i,j,dp[i][j]);
// }
// printf("\n");
// }
ll ans=-;
for(int i=;i<=k;i++){
// printf("+++%lld %d %d %lld\n",ans,eend,i,dp[eend][i]);
if(dp[eend][i]!=-){
if(ans==-){
ans=dp[eend][i];
}
else{
ans=minn(dp[eend][i],ans);
}
}
}
return ans;
}
int main()
{
int m,n,k;
scanf("%d %d %d",&m,&n,&k);
memset(head,-,sizeof(head));
memset(dp,-,sizeof(dp));
memset(vis,,sizeof(vis));
for(int i=;i<n;i++){
int a,b;
int c;
scanf("%d %d %d",&a,&b,&c);
add(a,b,c);
}
ll ans=spfa(,m,k);
printf("%lld\n",ans);
return ;
}
DongDong坐飞机的更多相关文章
- 牛客练习赛47 D DongDong坐飞机 (分层最短路)
链接:https://ac.nowcoder.com/acm/contest/904/D 来源:牛客网 DongDong坐飞机 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...
- 用自己赚的钱第一次坐飞机 那feel倍儿爽
马年春晚上,歌手大张伟的神曲<倍儿爽>如今已传遍大街小巷.其实,不管人家到底有没有炒作,能让我们这些观众感觉到放松.乐呵,那就是一个成功的春晚节目.而今年,我也如同这歌中唱的一样,活得倍儿 ...
- 2019 ICPC 银川网络赛 D. Take Your Seat (疯子坐飞机问题)
Duha decided to have a trip to Singapore by plane. The airplane had nn seats numbered from 11 to nn, ...
- 1957 Problem F 乌鸦坐飞机
#include <iostream> #include <algorithm> #include <cmath> #include <vector> ...
- 带你探索关于飞机Wi-Fi服务的神奇科学
资料来源: Colin Anderson制片公司/ Getty图片社 在35000英尺的高空冲浪?哇哦,这当然是我们现在所期望的飞行方式了.根据2018年全球旅行者研究(2018 Global Tra ...
- 我的屌丝giser成长记-研二篇
之前有提到过的,本来按照计划中,研一结束就该去深圳中科院研究所实习的,之前跟里面师兄说好了的,奈何导师又接到一个新的科研研究项目,跟学院的几个其他老师一起合作的,主要是关于土地流转系统,而且是一个挺大 ...
- form 表单基础知识
<form method=" name="one" action="http://www.battlenet.com.cn/zh/"> & ...
- 为什么我如此热爱这样一个比赛(转自vici)
为什么我如此的热爱这样一个比赛呢?因为它总能带给我一个目标,让我去努力实现它.因为可以看到胜利的希望,于是不断的去追逐.虽然其中的过程可能是比较艰辛的. 对于天才选手,作为天生的冠军,大概凭借天赋 ...
- 备忘录:hadoop技术一点积累
1.hbase的rowkey是按字典排序的,我看有的资料建议rowkey设计不应该是自增的,应该和这个字典排序相关吧 2.hbase的数据存储是按照region来的,region的设计前段时间在坐飞机 ...
随机推荐
- 洛谷P3802 小魔女帕琪
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- springMVC容器加载源码分析
springmvc是一个基于servlet容器的轻量灵活的mvc框架,在它整个请求过程中,为了能够灵活定制各种需求,所以提供了一系列的组件完成整个请求的映射,响应等等处理.这里我们来分析下spring ...
- HTML基本标签问题总结
一.常见的内联元素和块元素 块级元素: div, form, (列表相关ul,dl,ol,li,) h1-6,p,table 内联元素: a, br, u,(b , em, strong, i,) i ...
- 误删重要文件怎么办?学会Linux 救援模式再也不担心
背景 在运用Linux时会出现一些误操作,导致系统无法正常使用,比如删除了某个重要依赖库,或者删除了rpm等等.在这里记录下具体的操作步骤,供以后参考. 意义 学会在使用Linux系统出现误删除系统重 ...
- Effective Java第一节
第1条:考虑用静态工厂方法代替构造器 首先清楚什么是静态工厂方法? 静态工厂方法说白了就是在创建对象的时候,不是自己使用new关键字创建的,而是使用静态方法来对外提供自身的实例的方法. 比如: Fra ...
- 自动化运维工具之Cobbler
一.anaconda anaconda负责安装系统向导,默认为GUI界面,如果我们使用ks自动应答安装的话建议使用TUI界面来安装 在安装启动界面我们可以按esc键来自己手动指定安装启动选项 anac ...
- [HNOI2011]数学作业 矩阵快速幂 BZOJ 2326
题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 NNN 和 MMM ,要求计算Concatenate(1..N) Concatenate (1 .. N) ...
- Exadata中的dbserver_backup.sh脚本
dbserver_backup.sh脚本在老版本的exadata中,它存放在/opt/oracle.SupportTools目录中,主要用于/根文件系统和/boot分区的备份.dbserver_bac ...
- 1、python简单介绍
写在前面:曾经与java擦肩而过,现在懊悔很深,希望自己通过学习python,熟练掌握python,来弥补曾经的愚蠢.python简单介绍 python 1989年年底诞生,截止2017年,已经是IT ...
- AngularJs1.X学习--路由
[三种使用说明:] $stateProvider.state('station.printQRCode', { //params: { 'parentOfficeId': null }, //一次性参 ...