当前位置: 首页 > news >正文

网站外链如何建设最有用/活动营销方案

网站外链如何建设最有用,活动营销方案,如何查一个公司的营业执照,小精灵儿童网站免费做踢题目大意: 给你一个有向图,问每个点能够到达的点中编号最大的点。 思路: 假如这个图是一个树的话就这个题目就很好做了,首先我们设\(A[i]\)为每个点能够到达的编号最大的点。因为当前结点的儿子能够到达的点中的编号最大的点当前结点一定可以…

题目大意:

给你一个有向图,问每个点能够到达的点中编号最大的点。

思路:

假如这个图是一个树的话就这个题目就很好做了,首先我们设\(A[i]\)为每个点能够到达的编号最大的点。因为当前结点的儿子能够到达的点中的编号最大的点当前结点一定可以到达。然后当前结点中所以这里很明显\(A[i]\)的值可以有它子结点的值转移而来,所以我们得到了一个转移方程:
\[ A_i = max(A[v],i)\]

其中\(v\)\(i\)的子结点。

但是很遗憾我们题目中的图并不是一个树,而是一个有向图,所以\(A_i\)可以从更早遍历到的点\(x\)\(A[x]\)转移而来。如下图:

graph.png

要解决上面这个问题,我们可以用Tarjan算法缩点把图变为一个有向无环图。或者采用多次遍历的方法来解决。但这两个方法不是太难写要么就是会T(使劲卡常可以把这个题目卡出90分)。然后我们来讲讲一个简单好写又快的方法:

首先我们先反向建边,也就是假如我们本来要建一个从3到1的边,现在我们建一个从1到3边。然后从每个结点开始遍历假如遍历到的点的\(A\)的值没有起点的编号大,那么就更新这个点的\(A\)值。

代码:

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>using namespace std;const int N = 1e5 + 5;int n, m;
int u, v;
int a[N];
int cnt = 0;
int head[N];
bool vis[N];
bool check[N];struct EDGE {int s;int e;int nxt;
} Edge[N];void add(int u, int v) {++cnt;Edge[cnt].s = u;Edge[cnt].e = v;Edge[cnt].nxt = head[u];head[u] = cnt;
}int Min(int x, int y) {return x <= y ? x : y;
}int Max(int x, int y) {return x >= y ? x : y;
}void dfs(int x, int ans) {vis[x] = true;a[x] = Max(a[x], ans);for (register int i = head[x]; i; i = Edge[i].nxt) {if (vis[Edge[i].e]) continue;dfs(Edge[i].e, ans);}
}int main(int argc, char const *argv[]) {scanf("%d %d", &n, &m);for (register int i = 1; i <= m; ++i) {scanf("%d %d", &u, &v);add(v, u);}for (register int i = n; i >= 1; --i) dfs(i, i);for (register int i = 1; i <= n; ++i) printf("%d ", a[i]);putchar('\n');return 0;
}

转载于:https://www.cnblogs.com/lixiao189/p/9851762.html

http://www.jmfq.cn/news/5214043.html

相关文章:

  • 四川建设招投标网站/求网址
  • 网站建设入门/百度官网电话
  • wordpress自定义站点/对百度竞价排名的看法
  • 鞍山做百度网站一年多少钱/网址大全qq浏览器
  • 网站上的二维码怎么做的/最新军事头条
  • 微信商城和网站建设/网址提交
  • wordpress主题上传/网站的seo方案
  • 如何在交易网站做电子印章/品牌传播推广方案
  • 网站建设经/最快的新闻发布平台
  • jsp网站开发怎么调试/seo建设
  • 竟标网站源码/seo接单平台
  • 赣州网站建设策划/搜索引擎优化的根本目的
  • 大连网站建设介绍/友情链接检测结果
  • 长春是几线城市2020排名/seo交流中心
  • 3网站建设/拉新app推广平台排名
  • 佛山定制网站建设/太原seo公司
  • 长沙代理记账/成都优化网站哪家公司好
  • 招聘类网站建设/百度一下网页搜索
  • 客户评论 网站建设/帮人推广注册app的平台
  • 网页制作工具手机版/外贸网站推广seo
  • 新网站怎么快速收录/网站制作工具有哪些
  • 捡个杀手做老婆 在哪个网站/无锡网站制作无锡做网站
  • 做互助盘网站多少钱/百度新闻首页新闻全文
  • 做拼多多网站免费课程/最近10条重大新闻
  • 百度不更新网站/制作网站建设入门
  • 58网站怎么做浏览度才高/网络软文怎么写
  • 做公司网站的资料/长春seo整站优化
  • 建站哪家好wordpress/企业seo顾问服务阿亮
  • 招投标 网站建设/百度软件下载安装
  • 临沂做wish网站/域名注册免费