信息传递--NOIP2015 day1 T2--暴力
这道题我用了判联通量加暴力,但联通量判炸了。。。。然后从code[VS]上看到个不错的代码,就拿来了^_^...
基本思路是去掉环外的点,然后走每一个联通块。
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int n,fa[],x[],ru[],g[];
bool w[];
//fa记录当前节点的传递目标,x记录每个环中每个点的长度
//ru记录每个点的入度,g记录每个环中的最终长度 //快速读入
int getint()
{
int w=,q=;
char c=getchar();
while ((c>''||c<'')&&c!='-')
c=getchar();
if (c=='-') q=,c=getchar();
while (c>=''&&c<='') w=w*+c-'',c=getchar();
return q?-w:w;
} //删除当前点,如果他的下一个点也只有一个入度,那么递归删除
void shan(int k)
{
w[k]=;
ru[fa[k]]--;
if(ru[fa[k]]==)
shan(fa[k]);
} int main()
{
n=getint();
for (int i=; i<=n; i++)
fa[i]=getint(),ru[fa[i]]++; //读入 for (int i=; i<=n; i++)
if(ru[i]==&&!w[i]) //如果当前点只有一个入度
shan(i); //调用删除程序 for (int i=; i<=n; i++)
if(!w[i]) //如果i没被删除
{
x[]=fa[i];
int y=fa[i],ans=;
while (i!=y) //当环没有找到终点时
w[y]=,y=fa[y],x[++ans]=y; //递推
for (int j=; j<=ans; j++)
g[x[j]]=ans; //用g[最后一个点]记录最后的距离
} int ans=0x7fffffff;
for (int i=;i<=n;i++)
if(!w[i]) //如果m未被删除
ans=min(ans,g[i]); //取最小值
printf("%d",ans);
}
附DFS一个
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <vector> using namespace std; const int MAXN = ; int n;
int fa[MAXN];
int dfn[MAXN];
int vis[MAXN], vi = ;;
int ans = 0x3f3f3f3f;
void dfs(int x, int df) { vis[x] = vi;
dfn[x] = df;
int nex = fa[x]; if (!vis[nex]) dfs(nex, df + );
else if (vis[nex] && vis[nex] != vi) return;
else if (vis[nex] == vi) {
ans = min(ans, df - dfn[nex] + );
return;
}
} int main() {
scanf("%d", &n);
for (int i = ; i <= n; i++) {
scanf("%d", &fa[i]);
}
for (int i = ; i <= n; i++) {
if (!vis[i]) {
vi++;
dfs(i, );
}
}
cout << ans << endl;
return ;
}
信息传递--NOIP2015 day1 T2--暴力的更多相关文章
- codevs 4511 信息传递(NOIP2015 day1 T2)
4511 信息传递 NOIP2015 day1 T2 时间限制: 1 s 空间限制: 128000 KB 传送门 题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏. ...
- 洛谷P2661 信息传递==coedevs4511 信息传递 NOIP2015 day1 T2
P2661 信息传递 题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知 ...
- 信息传递 NOIP2015 day1 T2
题文: 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一轮 ...
- 【 NOIP2015 DAY1 T2 信息传递】带权并查集
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- 洛谷P2661 信息传递 [NOIP2015] 并查集/乱搞 (待补充!
感觉我好水啊,,,做个noip往年题目还天天只想做最简单的,,,实在太菜辽 然后最水的题目还不会正解整天想着乱搞,,, 虽然也搞出来辽233333 好滴不扯辽赶紧写完去做紫题QAQ 正解:并查集 ...
- 信息传递(NOIP2015)(寻找最小环。。)
原题传送门 这是一道寻找最小环的题目. 在做的时候给每一个点染色.. 防止再做已经搜过的点(优化) v[]表示是否访问的过,以及第一次访问该点的时间. u[]表示染色.. 这道题还可以用拓补排序做. ...
- 【NOIP2015提高组】 Day1 T2 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- NOIP2015提高组T2 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- [NOIP2015] 提高组 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
随机推荐
- codeforces 675D D. Tree Construction(线段树+BTS)
题目链接: D. Tree Construction D. Tree Construction time limit per test 2 seconds memory limit per test ...
- ASP.Net 验证控件 RangeValidator
RangeValidator 定义和用法 RangeValidator 控件用于检测用户输入的值是否介于两个值之间.可以对不同类型的值进行比较,比如数字.日期以及字符. 注释:如果输入控件为空,验证不 ...
- 锋利的jQuery第2版学习笔记8~11章
第8章,用jQuery打造个性网站 网站结构 文件结构 images文件夹用于存放将要用到的图片 styles文件夹用于存放CSS样式表,个人更倾向于使用CSS文件夹 scripts文件夹用于存放jQ ...
- JavaScript库开发者们的规则
详细内容请点击 1. 保持无侵入性 我的HTML标记不想知道你的JavaScript代码. 2. 严禁修改和扩展Object.prototype! 这条很重要,因此需要一条完全针对它的规则.对象是Ja ...
- 关于在asp.net的web页面中的全局变量问题
在asp.net的web页面中是不是没有全局变量?有的,在Class类内部的都是,只不过在WebWofm程式中跟WinForm和Console程式有些区别,当页面刷新时,它们的值不会保持,依然会再次初 ...
- jQuery插件的编写和使用 <思维导图>
以下是jQuery插件的编写和使用的思维导图,全屏观看,请点击:jQuery插件的编写和使用
- ASP.NET发布WebService
1. 创建一个空的Web应用程序 2. 再添加一个Web服务 3. 在所创建Web服务内,编写一算法 4. 写完可直接运行查看结果 5. 项目->右键,发布此WebService 6. 发布至 ...
- [老老实实学WCF] 第六篇 元数据交换
老老实实学WCF 第六篇 元数据交换 通过前两篇的学习,我们了解了WCF通信的一些基本原理,我们知道,WCF服务端和客户端通过共享元数据(包括服务协定.服务器终结点信息)在两个 终结点上建立通道从而进 ...
- 将slider滑块从横着变为竖着的时候坐标变换的计算
//// ViewController.m// imageview添加按钮//// Created by hehe on 15/9/22.// Copyright (c) 2015年 wang ...
- GForms开发平台
1. 开发平台概述 1.1. 产品概述 GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益. GForm ...