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

网站的功能模块数据分析师资格证书怎么考

网站的功能模块,数据分析师资格证书怎么考,短视频网站的动画是怎么做的,成都网站建设司题目 P2661 [NOIP 2015 提高组] 信息传递 分析 首先根据示例1进行分析,可以得出以下信息传递的关系图: 我们可以发现,2、3、4之间存在一个环,这个环的长度是3,那么意味着在3轮信息传递之后游戏就会结束。 这么分析…

题目

P2661 [NOIP 2015 提高组] 信息传递
在这里插入图片描述

分析

首先根据示例1进行分析,可以得出以下信息传递的关系图:
请添加图片描述
我们可以发现,2、3、4之间存在一个环,这个环的长度是3,那么意味着在3轮信息传递之后游戏就会结束。
这么分析之后问题就变得简单了,我们只需要通过拓扑排序找到整个关系图中的环,然后dfs环中的某一个结点(拓朴排序后未被标记的结点),然后计算出环的长度,并且要找到最短的那个环长,这样就知道游戏能进行多少轮了。

代码

#include<iostream>
#include<queue>using namespace std;const int N = 2e5 + 10;int ne[N], in[N]; //ne存结点的后继,in存结点的入度 
//为什么本题不用vector存i的出边信息,因为本题中每个结点i只有一条出边,入边可以有多条 bool st[N];int cnt;void dfs(int u)
{cnt++;st[u] = true;int v = ne[u];if(!st[v]) dfs(v); //我准备特殊判断ne[x]不能为0的,但是输入格式保证ne[x]不会出现0 }int main()
{int n; cin >> n;for(int i=1;i<=n;i++) //记录关系 {cin >> ne[i];in[ne[i]]++;}//拓扑排序queue<int> q;//把所有入度为0的点加入队列 for(int i=1;i<=n;i++){if(in[i] == 0) {q.push(i);st[i] = true; //也可以不标记,初初始入度为0的点不会被其他点指向,所以它们不会在拓扑排序中被标记,但由于它们不在环中,后续DFS也不会处理它们}} while(q.size()){auto u = q.front(); q.pop();int v = ne[u]; //删掉入度为0的结点的边 in[v]--;if(in[v] == 0) {q.push(v);st[v] = true;}		} //最后遍历所有结点,如果有没入队的,就存在环,进行dfs求最短环长 int ret = n;for(int i=1;i<=n;i++){if(!st[i]) {cnt = 0;dfs(i);ret = min(ret,cnt);}} cout << ret << endl;return 0;} 
http://www.dtcms.com/wzjs/398975.html

相关文章:

  • 国外的包装设计网站淘宝客怎么做推广
  • 安徽弘泰建设管理有限公司网站惠州seo计费管理
  • 特微网站首页高端网站建设案例
  • 网站建设 响应式 北京推广软文模板
  • 亚马逊网网站建设规划报告关键词如何排名在首页
  • 怎么做国内网站吗新媒体运营培训课程
  • 工业设计专业是干什么的seo和sem是什么意思
  • 泉州定制网站建设企业网站建设的基本流程
  • 怎么用ps做网站前台美工新乡网站优化公司价格
  • 中山网站建设怎么样深圳网络推广服务是什么
  • mvc网站开发实例微信拓客的最新方法
  • 设计公司网站建设费用网络排名优化软件
  • 番禺网站优化seo培训教程视频
  • 品牌营销网站建设新产品推广策划方案
  • 网站建设方案书要写吗百度最新推广产品
  • 网站建设微信营销公司软文代写公司
  • 做网站用的大图重庆网络营销
  • 做餐厅logo用什么软件网站西地那非片说明书
  • 宁波正规网站建设使用方法青岛seo全网营销
  • 武汉网页模板建站东莞网络营销全网推广
  • 天津做美缝的网站深圳谷歌推广公司
  • 东莞整站优化推广公司找火速百度seo查询系统
  • 河南单位网站建设学生个人网页制作html代码
  • 武冈做网站凡科建站登录
  • 建设企业网站公司百度关键词优化多少钱
  • 金属材料网站建设搜索引擎优化的核心本质
  • 营销和运营的区别是什么吉林seo基础知识
  • 云主机iss怎么做网站网页模板素材
  • 网站怎么做阿里妈妈转链友情链接交换要注意哪些问题
  • 如何做黑客攻击网站外贸建站教程