来自wzc的简单拓扑dp
来自wzc的简单拓扑dp(拓扑DP)
题目已经把解决方案给你了,就是拓扑DP(出题人这回没有耍你,真的)
不过我还是莽了两发dijk贪心QAQ,果然错了(毕竟DP弱者,巨贪心)…
正片开始
有向图拓扑DP(废话
状态定义如下Dp[i] = max(Dp[i],Dp[k] + val[i]);
k这里是 当i -> k 成立(i到k有一条边相连),就会存在上面的状态转移
So,很容易想到广搜然后利用上面的方程…
就是这样
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
const int MAXN = 100005;
struct node
{int ne,to,w;
}a[MAXN<<2];
int cnt,head[MAXN<<2];
int val[MAXN];
void add(int x,int y,int w = 0)
{a[++cnt].ne = head[x];a[cnt].to = y;a[cnt].w = w;head[x] = cnt;
}
int deg[MAXN];
int dp[MAXN];
int main()
{memset(head,-1,sizeof head);int n,m;scanf("%d %d",&n,&m);for(int i=1;i <= n;i++)scanf("%d",&val[i]);for(int i=0;i < m;i++){int x,y;scanf("%d %d",&x,&y);add(x,y);deg[y] += 1;}queue<int> que;que.push(0);memset(dp,-0x3f,sizeof dp);dp[0] = 0;while(!que.empty()) {int t = que.front();que.pop();for(int i=head[t];~i;i = a[i].ne){int ne = a[i].to;dp[ne] = max(dp[ne],dp[t] + val[ne]);deg[ne]--;if(deg[ne] == 0)que.push(ne);}}cout<<dp[n];return 0;
}
欢迎小伙伴在评论区留言,若有错误,请大佬指正QAQ。
喜欢就点个赞吧~
来自wzc的简单拓扑dp相关推荐
- 来自wzc的简单拓扑dp———浙江农林大学第二十届程序设计竞赛暨团体程序设计天梯赛选拔赛(同步赛)
传送门 题目描述 (良心出题人wzc说这是个简单拓扑dp,它就必然是一个简单拓扑dp,wzc是不会骗人的) wzc在一张拓扑图上,他所在的起始位置被标记为0.除了起始位置外,还有被1到n这n个整数所标 ...
- 【codevs2131】【BZOJ1924】所驼门王的宝藏,tarjan+拓扑DP
Time:2016.06.01 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 思路: 比较简单 使用规则建出一个包含N个点的无向图来,然后tarjan,得到重构后的有向无环图, ...
- 蓝桥杯 算法训练 数字三角形(最简单的DP)
传送门 题目描述 如下图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ● ...
- Codeforces Round #374 (Div. 2) A , B , C 水,水,拓扑dp
A. One-dimensional Japanese Crossword time limit per test 1 second memory limit per test 256 megabyt ...
- 洛谷P4742(tarjan缩点+拓扑DP)
https://www.luogu.org/problemnew/show/P4742 题目背景 [Night - 20:02[Night−20:02 P.M.]P.M.] 夜空真美啊--但是--快要 ...
- 加拿大 oracle audio,来自加拿大的“简单”与“纯粹”——Verity Audio Otello座地式扬声器...
原标题:来自加拿大的"简单"与"纯粹"--Verity Audio Otello座地式扬声器 说到音响器材的设计开发理念,那么真所谓是"八仙过海,各显 ...
- (蓝桥杯)数字三角形。。(最简单的dp题)
(图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形 ...
- 每日一道算法题 拿金币(蓝桥杯练习系统)简单的dp算法
资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就 ...
- BZOJ 1924 [Sdoi2010]所驼门王的宝藏 tarjan缩点+拓扑DP
题意: 一个r*c的图中,有n个宫殿. 每个宫殿有一个类型. 类型1:可以到达他所在的行的任意宫殿. 类型2:可以到达他所在的列的任意宫殿. 类型3:可以到达他四周八个格子的任意宫殿. 现在你从任意一 ...
最新文章
- 创建交叉表_【零售】Tableau LOD+表计算做交叉购买分析
- mysql 分表的3种方法
- Android数据存储与持久化
- PercentFrameLayout(百分比布局)的基本使用
- 【机器学习基础】(三):理解逻辑回归及二分类、多分类代码实践
- ACM MM2021 | 快手获得Grand Challenge第一名
- apply()、call()、bind()
- Linux系统如何安装oki打印机,涨知识!OKI针式打印机的驱动安装方法
- Hi3519AV100开发记录
- 如何使用gitee(码云)提交,拉取管理项目代码
- iOS集成支付宝支付 Alipay
- php邮件回复功能,用PHP回复邮件(Laravel Mailgun)
- ubuntu加了张固态_UbuntuToGo——打造属于自己的移动固态热插拔Liniux操作系统
- 说说Java代理模式
- Wireshark抓取TCP三次握手包
- win7系统提示actionscript错误如何解决
- php 自定义字段erp,ERP自定义单据界面、自定义字段
- 人类遗传密码97%待解读
- mac m1关闭sip系统完整性保护csrutil disable,如何禁用mac m1的系统完整性保护
- JMeter入门教程详解
热门文章
- python爬虫-1.06-MaoyanSpider
- 商品库存管理系统网站php模板,进销存产品库存管理系统 v2.22源码
- math.h 三角函数
- 本科毕业设计(论文)外文翻译--采用多病人协调器集设计方法的远程温度监测装置
- [MATLAB]将.m文件生成dll文件
- IE浏览器自动跳转edge怎么恢复
- 神经网络入门教程,神经网络编程入门
- Linux网络编程之sockaddr与sockaddr_in,sockaddr_un分析
- 【工具分享】免杀360火绒的shellcode加载器
- 养鸡场的计算机管理,养鸡场管理系统7.3 免费版