第二篇题解!

可能是退役之前的最后一篇题解了

(好像总共都只写了两篇)

不说了,讲题:

题面

题意:

有T个数据

有一颗树(保证所有的的节点都是相连的),有n个节点,每个节点都有相应的权值与序号,现在你要进行M次操作,操作是:

找到权值最大的节点(如果有权值相同且又是最大的节点,则选择序号较小的节点),与节点直接相连的节点权值+1(本身不增加权值)

最后输出权值最大的节点(有相同的则输出序号较小的节点)。

数据范围:

对于 100% 的数据,1≤N≤2×10^6,

1≤M≤10^18,

1≤A i≤2^31-1,

1≤T≤10

部分分就不写了。

反正很大就是了,看到这个M小于等于10的18次方,你怕了吗


题解(主要是思路):

首先看题目,有人看完题面可能会不知道为什么是一棵树只有你会,题目给出的是N个点,由N-1条双向路径相连,

C 国一共有 N 个村庄,N-1 条道路。这些道路都可以双向通行。
保证小 S 可以从一座村庄到其他任何一座村庄。
这 N 个村庄编号为 1 到 N。

保证小 S 可以从一座村庄到其他任何一座村庄

众所周知,想要组成环,至少需要与节点数相同的路径,而题意又保证各个节点一定相连,就必须要N条路径,但题目给出的只有n-1条路径

,则是一棵树。

好啰嗦

看完题意看数据范围,发现M的范围巨大,连O(M)的算法都过不了,不可做

于是我陷入了思考,先写一下数据推推规律:

三个点
2 6 3
都相连
2->6->3
M次操作
//1:
num[2]:6最大
3 6 4
//2:
num[2]:6最大
4 6 5
//3:
num[2]:6最大
5 6 6
出现了!相等的点!但是num[2]序号小,答案依旧是选num[2];
//4:
num[2]:6最大
6 6 7
num[3]大于num[2]了;
//5:
num[3]:7最大
6 7 7
又相等了,num[2]序号小,选num[2]。
//6:
num[2]:7最大
7 7 8
num[3]最大了

推到这就差不多了,可以得出以下规律:

(此处的权值指的是初始权值)

x1为权值最大的节点,y1为与它相连的权值相对最大的节点

  • 只需要记录下x1与y1,而其他的节点,拜托,他们超逊的!可以从数据中看出,与6相连的num[1]由于小于num[2],在答案的选择中没有任何竞争力,不与权值最大的节点直接相连的节点就更不要说了。(觉得不对的同学可以自己写几组数据试试)

  • 在M小于num[2]与num[3]的差时,答案恒为num[2],(num[2]:哼,没点时间还想超过我?)可以转化为-----当M小于x1-y1,选x1;

  • 然后就是M>=他们的差时:看数据,第3次操作到第6次操作答案是有循环的,很容易得到是跟M的奇偶性有关的(等于的话就是直接取序号最小就行了),先将M减去x1-y1,奇数取y1,偶数取x1.

这一切都是建立在这个图是一颗树的前提下。

代码实现就行

然后就没了

吗?

还有特判!

在代码实现中,当n=1时的情况要特殊考虑

我就是被这个点坑杀了4个点

85分没了

结束

不点个赞再走?

有什么意见可以发在评论区哦

「MCOI-03」村国题解的更多相关文章

  1. LuoguP7043 「MCOI-03」村国 题解

    Content 有 \(T\) 组询问,每组询问给定一个有 \(n\) 个节点的数,编号为 \(1\sim n\),每个节点一开始都有权值 \(a_i\).现有 \(m\) 次操作,每次操作选择树上所 ...

  2. LuoguP7127 「RdOI R1」一次函数(function) 题解

    Content 设 \(S_k\) 为直线 \(f(x)=kx+k-1\),直线 \(f(x)=(k+1)x+k\) 与 \(x\) 轴围成的三角形的面积.现在给出 \(t\) 组询问,每组询问给定一 ...

  3. LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)

    题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_ ...

  4. LOJ #2540. 「PKUWC 2018」随机算法(概率dp)

    题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 ...

  5. 「GXOI / GZOI2019」简要题解

    「GXOI / GZOI2019」简要题解 LOJ#3083. 「GXOI / GZOI2019」与或和 https://loj.ac/problem/3083 题意:求一个矩阵的所有子矩阵的与和 和 ...

  6. 【题解】#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT)

    [题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现, ...

  7. 「POJ 3666」Making the Grade 题解(两种做法)

    0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...

  8. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...

  9. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

随机推荐

  1. IIS网站建立好后如何更改绑定IP或端口号

    写在前面的话 我们利用IIS建立网站的时候,一般都是设定好网站名称和物理地址,直接下一步建立完成了.正常访问都没问题,但如果我们这时候想要更改访问的IP或者端口号,打开了很多设置项就是没找到设置的地方 ...

  2. Tomcat学习小记(二)

    1.Tomcat源码入口 生命周期统一管理接口:LifeCycle 实现LifeCycle接口的类:(idea快捷键:Ctrl+h) 多个组件共同实现LifeCycle接口 Tomcat启动入口分析: ...

  3. 登陆页跳出iframe

    1 if(top.location.href != location.href){ 2 top.location.href = location.href; 3 }

  4. PageRank算法(网页排名)

    Google用它来体现网页的相关性和重要性

  5. SPI通信基础学习

    SPI是"Serial Peripheral Interface"的缩写,即"串行外设接口",是摩托罗拉公司推出的一种串行接口通信协议. 接线的示意图: SPI ...

  6. 【题解】[CQOI]动态逆序对

    题目链接 题意如题,维护一个动态序列的逆序对总数. 注意题目给的是\([1,n]\)的排列,所以没必要离散化了. 考虑逆序对:二维偏序可以用树状数组做,现在是三维偏序,即加了一个时间维度. 找一个数前 ...

  7. uni-app引入iconfont字体图标

    1 首先进入你的iconfont项目 很好, 看见圈圈的吗 , 我说蓝色的,记住了,选到这个 ,然后点击下载本地项目, 解压完就是这个了 ,然后把 圈起来的放到你的项目文件里面 ,记得引入的时候路径别 ...

  8. Mac Idea你不知道的秘密

    导读 工欲善其事必先利其器,日常工作中,知道这些Idea技巧,可以极大提高日常开发效率. 技巧篇 以下内容不分先后顺序 显示类中的方法 搜索 搜索方法,按两下shift 文字搜索,control+sh ...

  9. 如何快速构建React组件库

    前言 俗话说:"麻雀虽小,五脏俱全",搭建一个组件库,知之非难,行之不易,涉及到的技术方方面面,犹如海面风平浪静,实则暗礁险滩,处处惊险- 目前团队内已经有较为成熟的 Vue 技术 ...

  10. 多测师讲解python _unttest框架002(结合项目实战)_高级讲师肖sir

    第一种调用方法: if __name__ == '__main__':# #第一种运行方法:运行所有的用例 import unittestfrom selenium import webdriverf ...