DAG最长路问题 hdu-1224
用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相关推荐
- POJ - 3160 Father Christmas flymouse DAG最长路
又来做这一道缩点的裸题,发现图转化为DAG后明显是一个最长路,那么有没有固定都求法呢,查询资料后发现的确是一种固定的做法. DAG最长路,分为两种固定终点和不固定终点. 令dp[i]表示从i顶点出发能 ...
- 【EOJ Monthly 2019.02 - E】中位数(二分 ,中位数 ,−1/1变换,dp求解DAG最长路)
题干: E. 中位数 单测试点时限: 10.0 秒 内存限制: 256 MB "你的地图是一张白纸,所以即使想决定目的地,也不知道路在哪里." QQ 小方最近在自学图论.他突然想出 ...
- DAG最长路(最短路)
DAG就是有向无环图. DAG上的最长或者最短路是很重要的一类问题.很多问题都可以转化为DAG上的最长或者最短路径的问题.DAG求最短和最长路的方法一样. 本算法主要解决2个问题 1)求整个DAG中的 ...
- UVA 103 Stacking Boxes 套箱子 DAG最长路 dp记忆化搜索
题意:给出几个多维的箱子,如果箱子的每一边都小于另一个箱子的对应边,那就称这个箱子小于另一个箱子,然后要求能够套出的最多的箱子. 要注意的是关系图的构建,对箱子的边排序,如果分别都小于另一个箱子就说明 ...
- 【POJ - 3160】Father Christmas flymouse(Tarjan缩点,DAG最长路)
题干: After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ends s ...
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
题意: 给定一个有向无环图,求该图的最长路. 思路: 由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可. 代码: # ...
- 11.6 DAG最长路
DAG:有向无环图 1.求整个DAG中的最长路径(即:不固定终点和起点) 2.固定终点,求DAG中的最长路径 问题1 给定一个有向无环图,如何求解整个图的所有路径中权值之和最大的那条 令:dp[i]表 ...
- hdu 1224 最长路
开始用dijkstra直接求,发现不行,算法问题(1-2,(30),2-4(20),1--3(10),3--4(100)最后一个点无法更新,导致错误),后用取负,加大数法也没过. 现在(寒假了):求负 ...
- nyoj 10 skiing(DAG上的最长路,备忘录方法)
skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑 ...
最新文章
- can硬件滤波 stm32cubemx_STM32CubeMX系列教程12:控制器局域网络(CAN)
- dd命令测试linux磁盘io情况,【LINUX】正确的使用dd进行磁盘读写速度测试
- Android内存管理机制
- AcWing 320. 能量项链
- windowsphone7高级编程中提到的地址
- 韩顺平.2011最新版.玩转oracle视频教程笔记,韩顺平.2011最新版.玩转oracle视频教程(笔记)...
- PHP | 计算字符串中的单词总数
- java群发邮件_161013、java实现邮件群发带附件
- 第三个Sprint冲刺事后诸葛亮报告
- 使用freemarker模板生成html文件(一)
- leetcode121、122、123
- [VSX.002]VS开发环境模型
- Linux安装JDK11
- 矢量绘图软件:Sketch最新版82.1中文版
- 同济大学计算机科学系下设几个专业,同济大学计算机科学与技术系简介
- 基于Java实现的迷宫小游戏
- AR涂涂乐⭐四、 获取截图、赋值给物体,将数据传递给shader
- julius开源语音识别引擎
- 运维校招面经汇总(来源牛客网)
- 超火的口红机源码分享
热门文章
- 关于h264bitstream的bug修正及完善
- 计算时间差_小王子是怎么用四步法进行时间计算并成功避开日界线的
- 拦截游戏窗口被移动_熊孩子骗家长人脸识别? 腾讯游戏出了个新招
- 【Flink】Flink 没有keyBy 某个 subTask 没有数据
- 【Elasticsearch】搜索自己想要的东西与注释文本(字符串)插件
- 【Redis】Redis 五大基本数据类型
- 【zookeeper】zookeeper 查看ZK连接总数
- 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作
- 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)
- 【缓存】缓存,这么用才真正达到缓存的效果