用bellman_ford的方法,将中间不断取较小值,修改为取较大值就可以了

 #include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int N = ;
int dp[N] , k , first[N] , val[N] , x , y , fa[N] , rec[N]; struct Edge{
int x , y , next , d;
}e[N*N]; void add_edge(int x , int y , int d)
{
e[k].x = x , e[k].y = y , e[k].next = first[x] , e[k].d = d;
first[x] = k++;
} int main()
{
int T , n , cas = ;
scanf("%d" , &T);
while(T--){
scanf("%d" , &n);
for(int i = ; i<=n ; i++)
scanf("%d" , val+i);
val[n+] = ; int m;
scanf("%d" , &m);
k=;
for(int i = ; i<m ; i++){
scanf("%d%d" , &x , &y);
add_edge(x , y , val[y]);
} memset(dp , , sizeof(dp));
memset(fa , , sizeof(fa));
for(int i = ; i<=n ; i++){
for(int j = ; j<k ; j++){
int u = e[j].x , v = e[j].y;
if(dp[v] < dp[u] + e[j].d){
dp[v] = dp[u] + e[j].d;
fa[v] = u;
// cout<<"here: "<<u<<" "<<v<<" "<<fa[v]<<" "<<dp[v]<<endl;
}
}
} printf("CASE %d#\npoints : %d\ncircuit : " , ++cas , dp[n+]);
int cnt = , la = n+;
rec[cnt++] = ;
while(fa[la]){
rec[cnt++] = fa[la];
la = fa[la];
}
for(int i = cnt- ; i>= ; i--)
printf("%d->" , rec[i]);
printf("%d\n" , rec[]);
if(T>) puts("");
}
return ;
}

HDU 1224 无环有向最长路的更多相关文章

  1. hdu 1224(动态规划 DAG上的最长路)

    Free DIY Tour Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. HDU.1529.Cashier Employment(差分约束 最长路SPFA)

    题目链接 \(Description\) 给定一天24h 每小时需要的员工数量Ri,有n个员工,已知每个员工开始工作的时间ti(ti∈[0,23]),每个员工会连续工作8h. 问能否满足一天的需求.若 ...

  3. hdu 1534(差分约束+spfa求最长路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534 思路:设s[i]表示工作i的开始时间,v[i]表示需要工作的时间,则完成时间为s[i]+v[i] ...

  4. hdu 6201 【树形dp||SPFA最长路】

    http://acm.hdu.edu.cn/showproblem.php?pid=6201 n个城市都在卖一种书,该书的价格在i城市为cost[i],商人打算从某个城市出发到另一个城市结束,途中可以 ...

  5. 「BZOJ1924」「SDOI2010」 所驼门王的宝藏 tarjan + dp(DAG 最长路)

    「BZOJ1924」[SDOI2010] 所驼门王的宝藏 tarjan + dp(DAG 最长路) -------------------------------------------------- ...

  6. Codeforces Round #379 (Div. 2) E. Anton and Tree —— 缩点 + 树上最长路

    题目链接:http://codeforces.com/contest/734/problem/E E. Anton and Tree time limit per test 3 seconds mem ...

  7. UVA_1025 a Spy in the Metro 有向无环图的动态规划问题

    应当认为,有向无环图上的动态规划问题是动态规划的基本模型之一,对于某个模型,如果可以转换为某一有向无环图的最长.最短路径问题,则可以套用动态规划若干方法解决. 原题参见刘汝佳紫薯267页. 在这个题目 ...

  8. hdu1224SPFA求最长路加上打印路径

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1224/ 无负环. 代码如下: #include<bits/stdc++.h> using names ...

  9. 题解【洛谷P1807】最长路_NOI导刊2010提高(07)

    题面 题解 最长路模板. 只需要在最短路的模板上把符号改一下\(+\)初值赋为\(-1\)即可. 注意一定是单向边,不然出现了正环就没有最长路了,就好比出现了负环就没有最短路了. 只能用\(SPFA\ ...

随机推荐

  1. E20170526-hm

    plain n. 平原; 平地;   adj. 平的; 素的; 清晰的; 相貌平平的; layout   n. 布局,安排,设计; 布置图,规划图; modularity    n. 模块化; 模块性 ...

  2. Linux系统基本信息查看

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a   (Linux查看版本当前操作系统内核信息)   2.# ...

  3. 在sql语句中使用关键字

    背景 开发过程中遇到了遇到了一句sql语句一直报错,看了一下字段名和表名都对应上了,但是还是一直报错 sql语句如下: update table set using = ""hh ...

  4. java虚拟机全集(31篇文章)

    深入理解java虚拟机系列 深入理解Java虚拟机笔记---内存区域 深入理解Java虚拟机笔记---判断对象是否存活 深入理解Java虚拟机笔记---垃圾收集算法 深入理解Java虚拟机笔记---垃 ...

  5. set && muliset

    #include <set> #include <iostream> #include <cstdio> #include <cctype> using ...

  6. java dom4j xml生成,解析

    1. 用Java代码生成xml文档 package com.test.dom; import java.io.FileOutputStream; import java.io.IOException; ...

  7. [ZJOI2006]Book书架

    Description Sally有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号.Sally在看书的时候,每次取出一本书,看完后放回书柜 ...

  8. POJ 2187 凸包+旋转卡壳

    思路: 求个凸包 旋转卡壳一下 就求出来最远点对了 注意共线情况 也就是说   凸包如果有一堆点共线保留端点即可 //By SiriusRen #include <cmath> #incl ...

  9. DFS BestCoder Round #49 ($) 1001 Untitled

    题目传送门 /* DFS:从大到小取模,因为对比自己大的数取模没意义,可以剪枝.但是我从小到大也过了,可能没啥大数据 */ /************************************* ...

  10. Redis基础---5个基本数据结构(比较性记忆)

    “ Redis是一个内存数据库,只用硬盘来进行持久化. Mongodb是半内存数据库 Mysql是硬盘数据库 ” 1. Redis启动 安装好了之后.运行redis-3.2.8/src/下的redis ...