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的设计前段时间在坐飞机 ...
随机推荐
- Mysql实例参数优化15个主要参数讲解(原创)
1.innodb_buffer_pool_size 设置物理内存的60%-80%,反应IO吞吐的最大上限2.innodb_thread_concurrency 线程并发,设置为CPU核心数,如果等于0 ...
- iOS开发之swift与OC混编出现的坑,oc中不能对swift的代理进行调用,不能访问swift中的代理,swift中的回调方法
1. Swift与oc混编译具体怎么实现,这儿我就不重复讲出了,网上有大把的人讲解. 2. 在swift与OC混编的编译环境下, oc类不能访问swift创建类中的代理? 解决方法如下: 在代理的头部 ...
- vue-cli 使用sass(scss)
安装依赖: npm install sass-loader node-sass vue-style-loader --save-dev
- Django框架base.py源码
url.py文件 from django.conf.urls import url from django.contrib import admin from app_student import v ...
- JS精粹知识点和我的解释
函数若是不return则默认返回undefined const value=()=>{ let a=3; } let value_test; console.log(value(),value_ ...
- 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 ...
- 1104 Sum of Number Segments(20 分)
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...
- postgresql导出某张表的数据
\copy 表名 to 路径 with csv 比如: \copy dataset to /home/backup/dataset.csv with csv \copy dataset to /hom ...
- Python 添加模块
一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py in ...
- spring mvc 注解扫描问题 ,扫描不到controller, use-default-filters="false"
今天搭了个spring mvc项目,怎么也扫描不到controller,最后发现问题在use-default-filters="false"上面,乱copy出的问题 (默认值是tr ...