CF374 Journey
技不如人甘拜下风
这题网上说法有 建反向边和先拓扑
都是为了每个点之前将其前驱都遍历到
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 5005;
const int INF = 0x3f3f3f3f;
int N,M,T;
vector<pair<int,int> > mp[MAXN];
ll dp[MAXN][MAXN];
int vis[MAXN];
int ans;
vector<int> op;
void dfs(int x) {
if(vis[x]) return;
for(int i = 0; i < (int)mp[x].size(); ++i) {
int y = mp[x][i].first;
if(!vis[y]) dfs(y);
}
for(int i = 0; i < (int)mp[x].size(); ++i) {
int y = mp[x][i].first; int z = mp[x][i].second;
for(int j = 1; j <= N; ++j) {
if( dp[x][j] > dp[y][j-1]+z ) {
dp[x][j] = dp[y][j-1]+z;
if(x==N && j > ans && dp[x][j] <= T) ans = j;
}
}
}
vis[x] = 1;
}
void re_dfs(int x,int num) {
op.push_back(x);
for(int i = 0; i < (int)mp[x].size(); ++i) {
int y = mp[x][i].first; int z = mp[x][i].second;
if(dp[x][num] == dp[y][num-1]+z){
re_dfs(y,num-1);
return;
}
}
}
int main(){
while(~scanf("%d %d %d",&N,&M,&T)) {
ans = 0; op.clear();
memset(vis,0,sizeof(vis));
memset(dp,INF,sizeof(dp));
for(int i = 1; i <= N; ++i) mp[i].clear();
for(int i = 1; i <= M; ++i) {
int a,b,c; scanf("%d %d %d",&a,&b,&c);
mp[b].push_back({a,c});
}
dp[1][1] = 0;
dfs(N);
re_dfs(N,ans);
printf("%d\n",ans);
for(int i = (int)op.size()-1; i >= 0; --i) {
printf("%d ",op[i]);
} printf("\n");
}
return 0;
}
CF374 Journey的更多相关文章
- CF721C. Journey[DP DAG]
C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard input ou ...
- POJ2488A Knight's Journey[DFS]
A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 41936 Accepted: 14 ...
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
- POJ2488-A Knight's Journey(DFS+回溯)
题目链接:http://poj.org/problem?id=2488 A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Tot ...
- codeforces 721C C. Journey(dp)
题目链接: C. Journey time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...
- A Knight's Journey 分类: POJ 搜索 2015-08-08 07:32 2人阅读 评论(0) 收藏
A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 35564 Accepted: 12119 ...
- HDOJ-三部曲一(搜索、数学)- A Knight's Journey
A Knight's Journey Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) ...
- 【推公式】UVa 10995 - Educational Journey
1A~,但后来看人家的代码好像又写臭了,T^T... Problem A: Educational journey The University of Calgary team qualified f ...
- poj 3544 Journey with Pigs
Journey with Pigs Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3004 Accepted: 922 ...
随机推荐
- OI黑科技:读入优化
利用getchar()函数加速读入. Q:读入优化是什么? A :更加快速地读入一些较大的数字. Q:scanf不是已经够快了吗? A:Naive,scanf还是不!够!快! Q:那怎么办呢? A:我 ...
- BZOJ 1396&&2865 识别子串[后缀自动机 线段树]
Description 在这个问题中,给定一个字符串S,与一个整数K,定义S的子串T=S(i, j)是关于第K位的识别子串,满足以下两个条件: 1.i≤K≤j. 2.子串T只在S中出现过一次. 例如, ...
- POJ 2826 An Easy Problem?![线段]
An Easy Problem?! Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12970 Accepted: 199 ...
- nginx + tomcat实现负载均衡
作者Mr.Chen,转载请注明博客出处:http://www.cnblogs.com/cjh-notes/ 负载均衡 负载均衡就是流量分发,优选软件解决方案,成本低效果好. 实现步骤 第一步:下载安装 ...
- u-boot核心初始化
异常向量表:异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件.ARM Architecture Reference Manual p54页.7种异常的类型:Re ...
- AnnotationUtils
/** * 查询类中符合指定annotation的属性信息 * @param objCls 实体类 * @param annCls 注解类 * @return HashMap<实体属性名, An ...
- 一个客户端一键安装环境和服务的shell脚本
#!/bin/bash basepath=$(cd `dirname $0`; pwd)SHELL_DIR="${basepath}/shell"PACKAGE_DIR=" ...
- Jenkins代码管理
1.1 Jenkins安装与下载应用代码 应用部署 http://jenkins-ci.org http://wordpress.org/ http://core.svn.wordp ...
- prop&attr区别和用法,以多选框为例
1.比较 相同点 : prop和attr作为jquery的方法都可以获取属性值; 不同点 : (1) 对于HTML元素本身就带有的固有属性,使用prop方法, attr获取checkbox的check ...
- 通过核心概念了解webpack工作机制
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...