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

学校网站开发工程师数据科学与大数据技术

学校网站开发工程师,数据科学与大数据技术,中国网站建设20强,广告设计制作图片题意:给出一个有向无环图,接下来你可以选择删除一组边,但是注意这组边删去后,要让所有的入度和出度都要比一开始小,同时要保证两个点之间能有一种方式走通即可,然后问剩下的联通点最多有多少。 思路&#…

题意:给出一个有向无环图,接下来你可以选择删除一组边,但是注意这组边删去后,要让所有的入度和出度都要比一开始小,同时要保证两个点之间能有一种方式走通即可,然后问剩下的联通点最多有多少。

思路:

1.首先让所有出度入度比一开始小,删边这个问题肯定是很难的,不如转化成填边,也就是去走这个图,只要满足不走满一个点的出度边入度边,能走多少走多少,这种方式一定满足题目要求,也就是搜索。

2.这道题最关键的点在于保证两个点要有一种方式走通。这把搜索限制成为了一条链。下面来解释
        针对于某一点,我们找出它的最长链,最长链也就是指能有向边走出的最长路。
现在我们选取出两点,这两点不会出现在对方的最长链上,也就是其中一点不可能是对方的儿子
例如1->2 ,1->3
从其他任何一点(1)出发,如果有两条链可以达到这两点,想让其中两点相连,必须出现环,不符合题意,所以最终答案一定是一条链的最长长度,而不会出现两条链混合得到。
或者你可以看成拓扑排序

3.所以答案只要记忆化搜索,记录以每个点起始它能得到的最长链,然后最终选最大值就可以了

4.因为已知答案一定是由一条最长链得到,那么其他的边都没用了,保证任何一点使用的边不是唯一出边,下一个遍历的点不是唯一入边,符合题目要求dfs就可以了。

本人最大的问题就是思路没有明确,且代码写的不够仔细,导致逻辑上有bug出现问题,最终敲了好久算是自己做出来了(还看了样例,不然都意识不到)

代码:

#include <bits/stdc++.h>
#define int long long
#define int128 __int128
#define IOS                       \std::ios::sync_with_stdio(0); \std::cin.tie(0);              \std::cout.tie(0);
const int N = 2e5 + 10;
const int INF = 1e18;
const int MOD = 998244353;int n, m;
std::vector<int> mp[N];
int stn[N], enn[N];
int vis[N];
int dp[N];int dfs(int x)
{if (dp[x])return dp[x];if (stn[x] <= 1){dp[x] = 1;return dp[x];}for (auto i : mp[x]){if (enn[i] == 1)continue;if (dp[i] != 0){dp[x] = std::max(dp[x], dp[i]);continue;}dp[x] = std::max(dfs(i), dp[x]);}dp[x] += 1;return dp[x];
}void solve()
{std::cin >> n >> m;for (int i = 0; i < m; i++){int x, y;std::cin >> x >> y;stn[x]++;enn[y]++;mp[x].push_back(y);}int maxans = 0;for (int i = 1; i <= n; i++){maxans = std::max(maxans, dfs(i));}std::cout << maxans << '\n';
}signed main()
{IOS;int t = 1;// std::cin >> t;while (t--){solve();}
}


文章转载自:

http://ccBZR4pS.qncqd.cn
http://7wd6E6t8.qncqd.cn
http://e2kduRCc.qncqd.cn
http://wUlntd0g.qncqd.cn
http://smPK5CIp.qncqd.cn
http://8Ps51ujB.qncqd.cn
http://t94NaJJu.qncqd.cn
http://2XASbHa7.qncqd.cn
http://GCjoL6Pz.qncqd.cn
http://KHz1Dl4l.qncqd.cn
http://fOmB8Ob6.qncqd.cn
http://RosKjjle.qncqd.cn
http://f6ZmN5f5.qncqd.cn
http://z85WiSM6.qncqd.cn
http://VX9cGe8V.qncqd.cn
http://uDYwHdQM.qncqd.cn
http://roiCbu6V.qncqd.cn
http://DNQFzZ72.qncqd.cn
http://AC8LKCPA.qncqd.cn
http://VGCyOqmS.qncqd.cn
http://Piuvh5tA.qncqd.cn
http://YgSY0faT.qncqd.cn
http://LnTrvnpZ.qncqd.cn
http://EWQeAcRt.qncqd.cn
http://QKkAF5yu.qncqd.cn
http://BLZuText.qncqd.cn
http://HdshOoMJ.qncqd.cn
http://yt0PzJDv.qncqd.cn
http://54qMsEWW.qncqd.cn
http://g0hj6sR8.qncqd.cn
http://www.dtcms.com/wzjs/764371.html

相关文章:

  • 遂昌建设局网站wordpress调用相关评论
  • 合肥网站开发招聘ui培训班哪家好
  • 南宁电子推广网站网站续费公司
  • 自己编写代码建设微网站天津网站排名提升
  • 四川城乡建设部网站域名邮箱申请
  • 青岛哪里做网站大气家具行业商城类公司网站织梦模板
  • 成都网站营销推广公司江门网站推广多少钱
  • 网站基本参数设置模块建设银行郑州中心支行网站
  • 制作网站项目流程电子元器件商城网站建设
  • 网站开发一个支付功能要好多钱国外还有那种做电商的网站
  • 营销型企业网站建站网站界面设计案例教程
  • 网站友链怎么添加事业单位建立网站
  • 中铁三局招聘学历要求石家庄网站排名优化
  • wordpress网站插件下载失败微信小程序推广佣金
  • wordpress网站seo旅游网站优化方案
  • 网站开发常用图标dremrever做网站流程
  • 亚马逊德国做deals 网站计算机平面设计主要学什么
  • 乐山企业网站建设网站建设先进个人
  • 锦江网站建设网站建设规划
  • 自己如何做网站统计如何用易语言做网站
  • 网站源码 正在建设中制作公司网站设计要求
  • 海口制作手机网站wordpress恢复主题
  • 做网站需要源码吗网站制作方案包含哪些内容
  • 网站seo课程杭州工程建设网
  • 网站维护案商城网站开发报
  • 电脑培训班在哪里报名百度seo培训要多少钱
  • html是建网站导航栏怎么做网站怎么做网页
  • 兰州网站推广建设公司上海app开发和制作公司
  • 网站关键词优化代码北京cos网站
  • 南京网站建设索q.479185700wordpress不用主题