【第12题】[NOIP2015 提高组] 信息传递

NOIP 2015 提高组复赛试题 CCF 全国信息学奥林匹克联赛(NOIP2015)复赛   提高组 day1 (请选手务必仔细阅读本页内容)   一.题目概况   中文题目名称 神奇的幻方 信息传递 斗地主 英文题目与子目录名 magic message landlords 可执行文件名 mag 阅读详情

题目:[NOIP2015 提高组] 信息传递

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/P2661
    • 参考题解:https://www.luogu.com.cn/problem/solution/P2661
  • 标签:OI、 NOIP、并查集、DFS
  • 难度:普及/提高-

题解

思路
  • 题解大家可移步看这里,很多童鞋写了各种解法
    • https://www.luogu.com.cn/problem/solution/P2661
  • 大体上就是并查集,合并过程中同时需要传递到根节点的距离(其实就是找最小环)
  • 当有两个点根节点一致时计算距离,并更新最小环长度
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';

struct edge {
    int r, h;
};

struct UF {
    vector<edge> fa;
    vector<int> m;

    UF(int n) :
            fa(n + 1), m(n + 1) {}

    void initialize (int n) {
        for (int i = 1; i <= n; ++i) {
            cin >> m[i];
            fa[i].r = i;
        }
    }

    int Find(int a) {
        if (a != fa[a].r) {
            int r = fa[a].r;
            fa[a].r = Find(fa[a].r);
            fa[a].h += fa[r].h;
        }
        return fa[a].r;
    }

    void Union(int x, int y, int &solve) {
        int b = Find(y);
        int a = Find(x);
        if (a != b) {
            fa[a].r = b;
            fa[x].h = fa[y].h + 1;
        } else {
            ans = min(solve, fa[x].h + fa[y].h + 1);
        }
    }
};

void best_coder() {
    int n;
    cin >> n;
    UF uf(n);
    uf.initialize(n);
    int solve = 0x7f7f7f7f;
    for (int i = 1; i <= n; ++i) {
       uf.Union(i, uf.m[i], solve);
    }

    cout << solve;
}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 返回
    return 0;
}
题解:洛谷 P2661 [NOIP 2015 提高组] 信息传递 游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。在游戏里每人都有一个固定的信息传递对象,其中,编号为。的同学的信息传递对象是编号为。的同学的信息传递对象是编号为。个用空格隔开的正整数。#普及# #拓扑排序# 阅读详情

相关推荐

NOIP2015提高组信息传递·AC代码

NOIP2015提高组信息传递的AC代码,这道题要用心想想,就是一个强连通问题

【NOIP】【提高组】【p2661】【信息传递】

题目 代码 #include<iostream> #include<cstdio> using namespace std; int n,k,ch,yh,mina=0x7f7f7f7; int d[200010]; int c[200010]; void dfs(int s,int ans) { if(c[s]==k){ yh=s; ...

sericon的博客 243

2023最新版kali安装教程

2023最新版kali安装教程 打开kali官网(https://www.kali.org/),下载kali镜像

qq_46346209的博客 2万+

NOIP2015 提高组 day1T2---信息传递

NOIP2015 提高组 day1 T2 题解: 显然这是一个查找最小环的问题,直接暴力 搜也能过,只不过需要一个限制 搜索次数 !!! #include<bits/stdc++.h> using namespace std; int n; vector<int>edge[200005]; int vis[200005]; int f[200005]; int ans=...

聂泽宇的blog 278

【Educoder作业】※ 数字图像——绿幕抠像

这次作业比上一篇博客基本得多,大多都是基础函数的运用。没啥说的,就整个sizesizesize即可。 T2 获取一个像素 T3 图像反色 T4 修改透明度 ′RGBA′'RGBA'′RGBA′也是一种图像格式 T5 抠图 T6 添加场景 这个主要是pastepastepaste函数里面的maskmaskmask参量没整明白,转载一篇博客供参考。...

JZYshuraK的博客 7570

单细胞分析实录(12): 如何推断肿瘤细胞

公众号后台回复20210418,获取本文的测试数据 1. 回顾 前面我已经讲解了inferCNV的基本用法,这一节继续学习:如何推断肿瘤细胞。本文应该是到目前为止,全网最详细的帖子(之一)。 关于肿瘤细胞的推断,比如研究上皮细胞起源的肿瘤,我见过的一些做法如下 简单粗暴型:将来源肿瘤病灶的所有上皮细胞都看成是肿瘤细胞 看CNV:将来源于肿瘤病灶的上皮细胞和参考细胞比较,将那些有明显CNV的细胞看作肿瘤细胞 看表达特征:考虑到有的肿瘤细胞可能没有CNV层面的变化,有的文章会根据肿瘤与正常的表达谱来区分是.

TOP生物信息 1万+

1888:【15NOIP提高组】信息传递(并查集&祖宗节点距离)

【代码】1888:【15NOIP提高组】信息传递(并查集&祖宗节点距离)

陈进士学习的博客 580

124、LLC谐振变换器的矩阵变压器设计

摘要 本文分享了LLC谐振变换器中矩阵变压器的实战设计经验。针对大功率LLC单颗变压器的痛点(绕组层数多、散热不均、漏感一致性差),作者提出将大变压器拆分为多个小变压器单元(建议6个),通过原边串联、副边并联的方式实现功率分配。详细解析了磁芯选型、匝比计算、绕组结构、漏感控制和散热设计等关键参数,特别强调了小磁芯优势、等效匝比计算误区以及三明治绕法的重要性。文中还总结了调试过程中的谐振频率偏移和均流问题解决方案,并给出了矩阵数量选择、磁芯材质、绝缘材料等实用建议。作者指出,矩阵变压器在2kW以上LLC应用中

Jack010169的博客 169

信息传递 -并查集判最小环

题目描述 有 个同学(编号为 到 )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 的同学的信息传递对象是编号为 的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游...

lyslyslys的博客 334

RK3568平台(音频篇)麦克风PDM接口录音

PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的已经是幅值分量了。

weixin_49303682的博客 5194

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 828

2019.02.15【NOIP提高组】模拟 B 组总结

100+80+30=210 T1:很容易看出是棵树 求出最长距离,深搜一下 如果一个点是叶子节点 暂时在它与它父亲那条边上放陷阱直到与根节点的距离达到最大值 如果是父亲节点 由于一个节点与它父亲的边上的陷阱可以影响这个点的所有儿子 也就是说我们可以在i与i的父亲的那条边上放陷阱来减少i到i的儿子的边上的陷阱数 但放太多会使某些点距离大于最大值 求个min就好。 T2: 一眼状压 但是2^15*...

JZHu_Ming_Han的博客 241

【DEIM创新改进】独家下采样创新改进篇 | ECCV 2026 | DEIM 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息、助力小目标检测、遥感小目标检测有效涨点

🔥本文提出了一种名为FSD-Down的频域-空间动态下采样模块,用于改进DEIM网络模型在小目标检测中的性能。FSD-Down通过小波分解显式保留低频语义和高频细节,结合分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘与纹理特征。该模块能有效减轻传统下采样造成的频率混叠和细节丢失,提升对小目标、密集目标和低对比度目标的检测能力。实验表明,FSD-Down计算开销可控,在保持实时性的同时显著提升检测精度,特别是在VisDrone和AITODv2数据集上对小目标的检测性能提升显著。

Ai缝合怪、助力小伙伴高效发论文 82

打卡信奥刷题(1224)用C++实现信奥 P2661 [NOIP 2015 提高组] 信息传递

之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容。)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为。号玩家都能从自己的消息来源得知自己的生日,同样符合游戏结束的条件。的同学的信息传递对象是编号为。

Loge谈信奥--一个专注于信奥人的博客 5691

三菱FX5U系列PLC与汇川IT6000系列触摸屏进行MODBUS TCP通信的具体方法

三菱FX5U系列PLC与汇川IT6000系列触摸屏进行MODBUS TCP通信的具体方法

Robot_PLC_HMI_Automation 6514

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【C++ 真题】P2661 [NOIP 2015 提高组] 信息传递

之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当发现 这个人的父亲 是 自己 时就有环形成了,即第 i 个人听到的自己的生日, 这时,cnt 就是所需要的步数,再将 cnt 与 ans 比较再取最小值(每次找父亲前初始化 cnt )。在游戏里每人都有一个固定的信息传递对象,其中,编号为。号玩家都能从自己的消息来源得知自己的生日,同样符合游戏结束的条件。的同学的信息传递对象是编号为。

Ω 894

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[NOIP2015 提高组] 信息传递(三种方式求最小环)

游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。在游戏里每人都有一个固定的信息传递对象,其中,编号为。号玩家都能从自己的消息来源得知自己的生日,同样符合游戏结束的条件。共一行一个整数,表示游戏一共可以进行多少轮。号玩家告诉他自己的生日,所以答案为。的同学的信息传递对象是编号为。的同学的信息传递对象是编号为。

m0_60738889的博客 993

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

NOIP2015提高组.信息传递

使用强连通分量算法求环上点的数量, 对每个连通分量求最小点数。

Ayanami_Rei的博客 693

NOIP2015提高组 信息传递(图论)

【问题描述】   有n个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学。   游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生

细雨欣然 3127

P2661 [NOIP 2015 提高组] 信息传递

题目描述n个同学通过固定传递对象进行信息传递,当有人得知自己的生日时游戏结束。要求找出游戏进行的轮数,即图中最小环的长度。 解题思路: 将问题转化为在有向图中寻找最小环 使用Tarjan算法识别所有强连通分量 统计节点数>1的强连通分量(即环) 输出最小环的大小 算法复杂度为O(n),适用于n≤2×10^5的数据规模。通过邻接表存储图结构,利用栈和后序遍历实现强连通分量的高效查找。

a13990636586的博客 1081

题解:[NOIP 2015 提高组] 信息传递

之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。在游戏里每人都有一个固定的信息传递对象,其中,编号为。号玩家都能从自己的消息来源得知自己的生日,同样符合游戏结束的条件。的强连通分量,在剩下的强连通分量中找节点个数最少的。个节点的强连通分量中,节点最少的个数是多少。的同学的信息传递对象是编号为。的同学的信息传递对象是编号为。游戏的流程如图所示。

PengFly123的博客 756

【NOIP2015 提高组 day1】

# 题目 A 【NOIP2015 提高组 day1】神奇的幻方 B 【NOIP2015 提高组 day1】信息传递 C 【NOIP2015 提高组 day1】斗地主 A. 【NOIP2015 提高组 day1】神奇的幻方 直接模拟 B. 【NOIP2015 提高组 day1】信息传递 考试时想了很久,后来画了个图立马就明白了,就是让你...

Double020的博客 391

C++&Pascal——NOIP2015提高组day1 t2——信息传递

题目描述 有 n 个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti 的同学。 游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得

McDonnell_Douglas的博客 636

P2661 [NOIP2015 提高组] 信息传递

P2661 [NOIP2015 提高组] 信息传递——有向图相关算法⭐️⭐️⭐️⭐️ 题目描述 有 n个同学(编号为 1到 n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 Ti的同学。 游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息, 但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。请问该

被一个OIER遗弃的一堆烂代码 656
上一篇: 【第11题】CF987C Three displays
下一篇: CSP-J/S 2023第一轮认证晋级分数线有些爆冷,超出想象
小码匠和老码农
博客等级 码龄5年 112粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码匠和老码农

喜欢作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值