Educational DP Contest G - Longest Path (dp,拓扑排序)

题意:给你一张DAG,求图中的最长路径.
题解:用拓扑排序一个点一个点的拿掉,然后dp记录步数即可.
代码:
int n,m;
int a,b;
vector<int> v[N];
int in[N];
int dp[N]; int main() {
//ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
n=read();
m=read(); for(int i=1;i<=m;++i){
a=read();
b=read();
v[a].pb(b);
in[b]++;
} queue<int> q;
for(int i=1;i<=n;++i){
if(!in[i]) q.push(i);
} while(!q.empty()){
int now=q.front();
q.pop(); for(auto w:v[now]){
in[w]--;
if(!in[w]){
q.push(w);
dp[w]=dp[now]+1;
}
}
} int ans=0; for(int i=1;i<=n;++i){
ans=max(ans,dp[i]);
} printf("%d\n",ans); return 0;
}
Educational DP Contest G - Longest Path (dp,拓扑排序)的更多相关文章
- Atcoder Educational DP Contest I - Coins (概率DP)
题意:有\(n\)枚硬币,每枚硬币抛完后向上的概率为\(p[i]\),现在求抛完后向上的硬币个数大于向下的概率. 题解:我们用二维的\(dp[i][j]\)来表示状态,\(i\)表示当前抛的是第\(i ...
- P3008 [USACO11JAN]Roads and Planes G (最短路+拓扑排序)
该最短路可不同于平时简单的最短路模板. 这道题一看就知道用SPFA,但是众所周知,USACO要卡spfa,所以要用更快的算法. 单向边不构成环,双向边都是非负的,所以可以将图分成若干个连通块(内部只有 ...
- 洛谷P4645 [COCI2006-2007 Contest#7] BICIKLI [Tarjan,拓扑排序]
题目传送门 BICIKLI 题意翻译 给定一个有向图,n个点,m条边.请问,1号点到2号点有多少条路径?如果有无限多条,输出inf,如果有限,输出答案模10^9的余数. 两点之间可能有重边,需要看成是 ...
- Educational DP Contest H - Grid 1 (DP)
题意:有一个\(n\)X\(m\)的图,"#"表示障碍物,"."表示道路,只能向右或向下走,问从左上角走到右下角的方案数. 题解:这题可以用bfs来搞,但dp更 ...
- Atcoder681 Typical DP Contest E.数 数位dp
写什么递归....非递归多好写 令$f[i][j]$表示前$i$位的和在模$d$意义下为$j$的方案数,然后转移即可 复杂度$O(10000 * 100 * 10)$ 注意非递归建议高位摆第$n$位. ...
- Educational Codeforces Round 25 E. Minimal Labels 拓扑排序+逆向建图
E. Minimal Labels time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Atcoder Educational DP Contest 题解
A - Frog 1/B - Frog 2 入门... #include<cstdio> #define abs(a) ((a)>=0?(a):(-(a))) #define min ...
- Sth about Educational DP Contest
Contest Website : atcoder.jp/contests/dp \[\begin{array}{c|C|c|c} TaskNum & TaskName & Statu ...
- AtCoder Educational DP Contest 总结
前言 感觉都初一升初二了,再做这个题是不是有点太菜了啊-- 里面大概都是些 DP 板子题(确信,题目质量还挺高的,不过不涉及太难的优化(实际上只有最后一题是斜率优化). 不管了,还是写个 blog 来 ...
随机推荐
- ubuntu 安装 docker 并配置镜像加速(使用 apt-get 进行安装)
ubuntu 安装docker CentOS docker安装 https://blog.csdn.net/weixin_44953227/article/details/108597310 你需要这 ...
- nginx日志详细说明
Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(/etc/nginx/nginx.conf)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志 访问日志主要记录 ...
- 【Oracle】11G 11.2.0.4 RAC环境打补丁
一.准备工作 1,数据库环境 操作系统版本 : RedHat 7.2 x64 数据库版本 : Oracle 11.2.0.4 x64 RAC Grid : 11.2 ...
- layui表格数据统计
//执行一个 table 实例 table.render({ elem: '#demo' ,height: 420 ,url: '/demo/table/user/' //数据接口 ,title: ' ...
- Java中,那些关于String和字符串常量池你不得不知道的东西
老套的笔试题 在一些老套的笔试题中,会要你判断s1==s2为false还是true,s1.equals(s2)为false还是true. String s1 = new String("xy ...
- 解决JS获取中文参数出现的乱码问题
在代码中增加如下js函数: function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + " ...
- 解决安装mysql动态库libstdc++.so.6、libc.so.6版本过低问题
初始化mysql报错: ./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ...
- 简易双色球dome分享
代码如下: <style type="text/css"> div {font-weight: bold;text-align: center;} .tone{widt ...
- CSS实现迷你键盘
最近做了一个迷你键盘的dome,这里分享给大家 dome下载地址(点击下载) 代码如下: <!DOCTYPE html> <html lang="en" > ...
- linux设备注册
一.分配cdev cdev表示字符设备,使用cdev_alloc函数,cdev_alloc函数原型如下: /** * cdev_alloc() - allocate a cdev structure ...