51nod 2842 城际旅行

news/2024/9/27 23:24:16

原题链接

image

这题因为要求满足 t 时间内,所以用 dp ,不过我们的状态比较特殊,\(dp[i][j]\) 表示到 \(i\) 点时经过 \(j\) 个点的最短时间,因为题目为 DAG 所以要用拓扑排序,每到一个点,枚举所有出边,更新出点的状态 \(f[v][j+1]=min(f[v][j+1],f[u][j])\),最后的答案就是所有 \(f[t][j]\le t\) 中最大的 \(j\)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 5005int n,m;
ll t;
int cnt=0;
struct Edge{int to,next,w;
}edge[2*N];
int head[N];void add_edge(int u,int v,int w){cnt++;edge[cnt].to=v;edge[cnt].next=head[u];edge[cnt].w=w;head[u]=cnt;
} int in[N];
queue<int> q;
ll f[N][N];void topo_sort(){for(int i=1;i<=n;i++){if(!in[i]){q.push(i);}}while(!q.empty()){int x=q.front();q.pop();for(int i=head[x];i!=-1;i=edge[i].next){int y=edge[i].to;for(int j=1;j<=n;j++){ll kk=f[x][j]+edge[i].w;if(kk<=t){//直接不加超过t的,其实加也行f[y][j+1]=min(f[y][j+1],kk);}}if(--in[y]==0){q.push(y);}}}
}int main(){ios::sync_with_stdio(false);cin>>n>>m>>t;for(int i=1;i<=n;i++){head[i]=-1;} for(int i=1;i<=m;i++){int u,v,w;cin>>u>>v>>w;add_edge(u,v,w);in[v]++;}memset(f,0x3f,sizeof f);f[1][1]=0; topo_sort();for(int j=n;j>=1;j--){if(f[n][j]<=t){cout<<j;return 0;}} cout<<0;return 0; 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/56415.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

adb获取手机电池信息

1、获取手机电池信息adb shell dumpsys battery字段说明Current Battery Service state:AC powered: true #交流供电USB powered: false #usb供电Wireless powered: false #无线供电Max charging current: 75000 #最大充电电流Max charging volt…

在pycharm中使用copilot

一、注册、获取使用权限 什么双密码验证、学生验证的过程就不重复了,按网上的教程来就行。 需要注意的是,Github学生认证通过之后,并不是能够立马使用copilot,得等三天copilot的免费使用权限才会批下来。 二、在pycharm中使用copilot 1、安装插件、登录Github等,按照网上的…

若依项目pom文件添加jar包已依赖报红,dependency not found,提示找不到jar包

原因很简单,因为我写在了父项目的pom文件中,写在了 里面。这里只是对依赖的版本进行管理。点击查看代码<!-- 依赖声明 --><dependencyManagement><dependencies>正确的做法应该是在子项目中的pom文件中引入对应依赖,在父项目的pom文件中填上对应的依赖版…

0 JavaScript高级程序设计(第4版)【JS红宝书】【详细思维导图】【持续更新】

ProcessOn访问链接 JavaScript高级程序设计(第4版)阅读路线图,涵盖:基本知识进阶内容BOM和DOMJavascript APIJavaScript设计模式和实践策略ProcessOn访问链接本文来自博客园,作者:muling9955,转载请注明原文链接:https://www.cnblogs.com/muling-blog/p/18395904

架构师备考的一些思考

前言 之前的python-pytorch的系列文章还没有写完,只是写到卷积神经网络。因为我报名成功了系统架构师的考试,所以决定先备考,等考完再继续写。 虽然架构师证书不能证明技术水平,但在现实生活中的某些情况下是有意义的。考试虽然无聊,但有些考题还是蛮有意思的。 思考 看了…

vissim检测路段通过车辆数-cnblog

vissim记录(vs4.3) 目录vissim记录(vs4.3)1.数据收集点设置2. 数据采集配置设置3. 结果查看设置数据收集点,进行截面数据统计1.数据收集点设置2. 数据采集配置设置我是五岔口,就设置了五组 还没完继续配置,选择要采集的数据。如果只需要统计通过车辆数,则只选择number veh3…