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的设计前段时间在坐飞机 ...
随机推荐
- 2017-10-26 NOIP模拟赛2
财富 (treasure) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是 ...
- ligerUI弹出框
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 关于给gridSelect控件设置默认值
给这个选择表格框添加默认值: <td class="form_label"> 客户名称: ...
- Jmeter_拦截Excel文件输出流到本地
一般而言,对于页面的“导出”操作,主要经历如下两个操作:①根据数据库的内容,将文件导出到应用服务器上:②将服务器上的文件下载到本地电脑: Jmeter同LoadRunner类似,只能记录服务端与客户端 ...
- maven-jar-plugin 使用maven生成可执行的jar包install a test-jar in maven
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- 使用C#连接 MyCat 链接串
所属专栏: mycat的安装部署以及监控和运维 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014180504/article/detai ...
- C. Glass Carving 正着做或者倒着做都可以
http://codeforces.com/problemset/problem/527/C 这题总体思路就是,每画一条线,然后就找到x间距的最max值和y间距的最max值,相乘就是当前的ans 那么 ...
- Java文件与io——缓冲流
对文件或其它目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInputStream:为另一个输入流添加 ...
- 四,JVM 自带命令行工具之JStack
jstack(stack trace for java) 命令 用于查看虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件).线程快照就是当前虚拟机内每一条线程正在执行的方 ...
- ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary path
错误日志如下: -- ::, DEBUG [org.apache.hadoop.metrics2.lib.MutableMetricsFactory] - field org.apache.hadoo ...