「MCOI-03」村国题解
第二篇题解!
可能是退役之前的最后一篇题解了
(好像总共都只写了两篇)
不说了,讲题:
题面
题意:
有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」村国题解的更多相关文章
- LuoguP7043 「MCOI-03」村国 题解
Content 有 \(T\) 组询问,每组询问给定一个有 \(n\) 个节点的数,编号为 \(1\sim n\),每个节点一开始都有权值 \(a_i\).现有 \(m\) 次操作,每次操作选择树上所 ...
- LuoguP7127 「RdOI R1」一次函数(function) 题解
Content 设 \(S_k\) 为直线 \(f(x)=kx+k-1\),直线 \(f(x)=(k+1)x+k\) 与 \(x\) 轴围成的三角形的面积.现在给出 \(t\) 组询问,每组询问给定一 ...
- LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_ ...
- LOJ #2540. 「PKUWC 2018」随机算法(概率dp)
题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 ...
- 「GXOI / GZOI2019」简要题解
「GXOI / GZOI2019」简要题解 LOJ#3083. 「GXOI / GZOI2019」与或和 https://loj.ac/problem/3083 题意:求一个矩阵的所有子矩阵的与和 和 ...
- 【题解】#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT)
[题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现, ...
- 「POJ 3666」Making the Grade 题解(两种做法)
0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...
- FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...
- LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)
写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...
随机推荐
- sping aop 源码分析(-)-- 代理对象的创建过程分析
测试项目已上传到码云,可以下载:https://gitee.com/yangxioahui/aopdemo.git 具体如下: public interface Calc { Integer add( ...
- 微服务通信之feign的注册、发现过程
前言 feign 是目前微服务间通信的主流方式,是springCloud中一个非常重要的组件.他涉及到了负载均衡.限流等组件.真正意义上掌握了feign可以说就掌握了微服务. 一.feign的使用 f ...
- “酒香也怕巷子深” Smartflow-Sharp 工作流
导语 老话说得好,"酒香不怕巷子深"可是我又不是什么大咖,写得再好也没人知道.所以我今天准备再写写我的工作流组件,写得不好还请大家见谅.写文章对于我来说,有点感觉"茶壶里 ...
- 手写“SpringBoot”近况:IoC模块已经完成
jsoncat:https://github.com/Snailclimb/jsoncat (About 仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架) ...
- Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- 三、Requests库的使用
requests 的底层实现其实就是 urllib3 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 学过关于urllib库的使用,你会发现它是很不方便的.而R ...
- 加快ASP。NET Core WEB API应用程序。第2部分
下载source from GitHub 使用各种方法来增加ASP.NET Core WEB API应用程序的生产力 介绍 第1部分.创建测试RESTful WEB API应用程序第2部分.增加了AS ...
- FRP服务
FRP服务 - Web服务 本服务提供Web内网穿透服务,并且开放端口 443和 80端口. 写在前面:提供公益FRP服务器:frp.dev.boselor.com,服务器在洛杉矶但是请勿用于违法用途 ...
- AntDesign初体验
AntDesign初体验 作为一个java开发也需要掌握一定的前端开发技能,毕竟靠人不如靠自己.再者,有时候一些小的改动自己就可以搞定了,就不用低三下四去求别人了: 安装Nodejs $ npm in ...
- rs232转网络
rs232转网络 rs232转网络ZLAN5103可以实现RS232/485/422和TCP/IP之间进行透明数据转发.方便地使得串口设备连接到以太网和Internet,实现串口设备的网络化升级.支持 ...