用DFS+记忆化写了一下,拓扑排序+DP的我还没弄明白。据说Codeforces 721C就是这类题目,因为有费用限制,DFS不太好写,有时间把DP法想明白来。

#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#define LL long long int
using namespace std;
LL sta[105];
vector<int> g[105];
LL dp[1005];
int pre[1005];
void dfs(int now,int sa)
{//puts("s");sa+=sta[now];for(int i=0;i<g[now].size();i++){int p=g[now][i];if(sa+sta[p]>dp[p]){dp[p]=sa+sta[p];pre[p]=now;dfs(p,sa);}}
}
void ini(int n)
{for(int i=0;i<=n+1;i++)g[i].clear(),pre[i]=i,dp[i]=0,sta[i]=0;
}
int main()
{int t,cas=1;scanf("%d",&t);while(t--){int n,m;scanf("%d",&n);ini(n);for(int i=1;i<=n;i++)scanf("%lld",&sta[i]);scanf("%d",&m);for(int i=0;i<m;i++){int a,b;scanf("%d%d",&a,&b);g[a].push_back(b);}dfs(1,0);printf("CASE %d#\n",cas++);printf("points : %lld\n",dp[n+1]);printf("circuit : ");stack<int> ss;int pos=n+1;while(pre[pos]!=pos)ss.push(pos),pos=pre[pos];printf("1");while(!ss.empty())printf("->%d",ss.top()==n+1?1:ss.top()),ss.pop();printf("\n");if(t) puts("");}return 0;
}

转载于:https://www.cnblogs.com/LukeStepByStep/p/5935141.html

DAG最长路问题 hdu-1224相关推荐

  1. POJ - 3160 Father Christmas flymouse DAG最长路

    又来做这一道缩点的裸题,发现图转化为DAG后明显是一个最长路,那么有没有固定都求法呢,查询资料后发现的确是一种固定的做法. DAG最长路,分为两种固定终点和不固定终点. 令dp[i]表示从i顶点出发能 ...

  2. 【EOJ Monthly 2019.02 - E】中位数(二分 ,中位数 ,−1/1变换,dp求解DAG最长路)

    题干: E. 中位数 单测试点时限: 10.0 秒 内存限制: 256 MB "你的地图是一张白纸,所以即使想决定目的地,也不知道路在哪里." QQ 小方最近在自学图论.他突然想出 ...

  3. DAG最长路(最短路)

    DAG就是有向无环图. DAG上的最长或者最短路是很重要的一类问题.很多问题都可以转化为DAG上的最长或者最短路径的问题.DAG求最短和最长路的方法一样. 本算法主要解决2个问题 1)求整个DAG中的 ...

  4. UVA 103 Stacking Boxes 套箱子 DAG最长路 dp记忆化搜索

    题意:给出几个多维的箱子,如果箱子的每一边都小于另一个箱子的对应边,那就称这个箱子小于另一个箱子,然后要求能够套出的最多的箱子. 要注意的是关系图的构建,对箱子的边排序,如果分别都小于另一个箱子就说明 ...

  5. 【POJ - 3160】Father Christmas flymouse(Tarjan缩点,DAG最长路)

    题干: After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ends s ...

  6. 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)

    题意: 给定一个有向无环图,求该图的最长路. 思路: 由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可. 代码: # ...

  7. 11.6 DAG最长路

    DAG:有向无环图 1.求整个DAG中的最长路径(即:不固定终点和起点) 2.固定终点,求DAG中的最长路径 问题1 给定一个有向无环图,如何求解整个图的所有路径中权值之和最大的那条 令:dp[i]表 ...

  8. hdu 1224 最长路

    开始用dijkstra直接求,发现不行,算法问题(1-2,(30),2-4(20),1--3(10),3--4(100)最后一个点无法更新,导致错误),后用取负,加大数法也没过. 现在(寒假了):求负 ...

  9. nyoj 10 skiing(DAG上的最长路,备忘录方法)

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑 ...

最新文章

  1. can硬件滤波 stm32cubemx_STM32CubeMX系列教程12:控制器局域网络(CAN)
  2. dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试
  3. Android内存管理机制
  4. AcWing 320. 能量项链
  5. windowsphone7高级编程中提到的地址
  6. 韩顺平.2011最新版.玩转oracle视频教程笔记,韩顺平.2011最新版.玩转oracle视频教程(笔记)...
  7. PHP | 计算字符串中的单词总数
  8. java群发邮件_161013、java实现邮件群发带附件
  9. 第三个Sprint冲刺事后诸葛亮报告
  10. 使用freemarker模板生成html文件(一)
  11. leetcode121、122、123
  12. [VSX.002]VS开发环境模型
  13. Linux安装JDK11
  14. 矢量绘图软件:Sketch最新版82.1中文版
  15. 同济大学计算机科学系下设几个专业,同济大学计算机科学与技术系简介
  16. 基于Java实现的迷宫小游戏
  17. AR涂涂乐⭐四、 获取截图、赋值给物体,将数据传递给shader
  18. julius开源语音识别引擎
  19. 运维校招面经汇总(来源牛客网)
  20. 超火的口红机源码分享

热门文章

  1. 关于h264bitstream的bug修正及完善
  2. 计算时间差_小王子是怎么用四步法进行时间计算并成功避开日界线的
  3. 拦截游戏窗口被移动_熊孩子骗家长人脸识别? 腾讯游戏出了个新招
  4. 【Flink】Flink 没有keyBy 某个 subTask 没有数据
  5. 【Elasticsearch】搜索自己想要的东西与注释文本(字符串)插件
  6. 【Redis】Redis 五大基本数据类型
  7. 【zookeeper】zookeeper 查看ZK连接总数
  8. 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作
  9. 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)
  10. 【缓存】缓存,这么用才真正达到缓存的效果