题目连接: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坐飞机的更多相关文章

  1. 牛客练习赛47 D DongDong坐飞机 (分层最短路)

    链接:https://ac.nowcoder.com/acm/contest/904/D 来源:牛客网 DongDong坐飞机 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...

  2. 用自己赚的钱第一次坐飞机 那feel倍儿爽

    马年春晚上,歌手大张伟的神曲<倍儿爽>如今已传遍大街小巷.其实,不管人家到底有没有炒作,能让我们这些观众感觉到放松.乐呵,那就是一个成功的春晚节目.而今年,我也如同这歌中唱的一样,活得倍儿 ...

  3. 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, ...

  4. 1957 Problem F 乌鸦坐飞机

    #include <iostream> #include <algorithm> #include <cmath> #include <vector> ...

  5. 带你探索关于飞机Wi-Fi服务的神奇科学

    资料来源: Colin Anderson制片公司/ Getty图片社 在35000英尺的高空冲浪?哇哦,这当然是我们现在所期望的飞行方式了.根据2018年全球旅行者研究(2018 Global Tra ...

  6. 我的屌丝giser成长记-研二篇

    之前有提到过的,本来按照计划中,研一结束就该去深圳中科院研究所实习的,之前跟里面师兄说好了的,奈何导师又接到一个新的科研研究项目,跟学院的几个其他老师一起合作的,主要是关于土地流转系统,而且是一个挺大 ...

  7. form 表单基础知识

    <form method=" name="one" action="http://www.battlenet.com.cn/zh/"> & ...

  8. 为什么我如此热爱这样一个比赛(转自vici)

    为什么我如此的热爱这样一个比赛呢?因为它总能带给我一个目标,让我去努力实现它.因为可以看到胜利的希望,于是不断的去追逐.虽然其中的过程可能是比较艰辛的.   对于天才选手,作为天生的冠军,大概凭借天赋 ...

  9. 备忘录:hadoop技术一点积累

    1.hbase的rowkey是按字典排序的,我看有的资料建议rowkey设计不应该是自增的,应该和这个字典排序相关吧 2.hbase的数据存储是按照region来的,region的设计前段时间在坐飞机 ...

随机推荐

  1. Mysql实例参数优化15个主要参数讲解(原创)

    1.innodb_buffer_pool_size 设置物理内存的60%-80%,反应IO吞吐的最大上限2.innodb_thread_concurrency 线程并发,设置为CPU核心数,如果等于0 ...

  2. iOS开发之swift与OC混编出现的坑,oc中不能对swift的代理进行调用,不能访问swift中的代理,swift中的回调方法

    1. Swift与oc混编译具体怎么实现,这儿我就不重复讲出了,网上有大把的人讲解. 2. 在swift与OC混编的编译环境下, oc类不能访问swift创建类中的代理? 解决方法如下: 在代理的头部 ...

  3. vue-cli 使用sass(scss)

    安装依赖: npm install sass-loader node-sass vue-style-loader --save-dev

  4. Django框架base.py源码

    url.py文件 from django.conf.urls import url from django.contrib import admin from app_student import v ...

  5. JS精粹知识点和我的解释

    函数若是不return则默认返回undefined const value=()=>{ let a=3; } let value_test; console.log(value(),value_ ...

  6. 73th LeetCode Weekly Contest Domino and Tromino Tiling

    We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may ...

  7. 1104 Sum of Number Segments(20 分)

    Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...

  8. postgresql导出某张表的数据

    \copy 表名 to 路径 with csv 比如: \copy dataset to /home/backup/dataset.csv with csv \copy dataset to /hom ...

  9. Python 添加模块

    一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py in ...

  10. spring mvc 注解扫描问题 ,扫描不到controller, use-default-filters="false"

    今天搭了个spring mvc项目,怎么也扫描不到controller,最后发现问题在use-default-filters="false"上面,乱copy出的问题 (默认值是tr ...