首页 > 其他分享 >9.11 模拟赛(炼石计划 11 月 05 日 NOIP 模拟赛 #17)

9.11 模拟赛(炼石计划 11 月 05 日 NOIP 模拟赛 #17)

时间:2024-09-11 20:51:54浏览次数:1  
标签:11 20 炼石 笛卡尔 T2 50 T1 模拟 规律

炼石计划 11 月 05 日 NOIP 模拟赛 #17【补题】 - 比赛 - 梦熊联盟 (mna.wang)

概况

预计 \(50+[20, 36] + 20+10 = [100,116]\)。

实际 \(35+36+20+0=91\)。挂飞了/qq

最后补题 \(50+100+20+10=180\)。T2 用 std 跑了较大数据终于找到了规律!!!T1 是笛卡尔树的高级应用,于是先学一手笛卡尔树。第三题听不懂讲解,第四题前置知识都没学过直接放弃。

复盘

逆风局。

读完题后先写了 T2 的爆搜。本来想靠它输出的结果找规律然后推正解,但是搜索很不优秀,只能跑 \(n \le 5\) 的数据。规律啥也看不出来。

爆搜调了很长时间终于对了。先让它跑 \(n = 6\) 的数据,往后看题。

实际上等了很长时间后它也没跑出来。于是直接把 exe 关了。靠爆搜找规律的思路暂时放弃。

T1 的 \(50\) 分是极易的。但是剩下的 \(50\) 分看起来不太好做。想到点分治(?)但是当时没学会。题解里确实有提到这个做法但是不是 std。想了一会就放弃了。先写前 \(50\) 分。

写了三个 namespace,分别是暴力、链和菊花。变量名能重复真的很强!很快过了题目给的所有样例。很不幸这些数据中没有菊花图的情况,于是赛后发现菊花的挂了/ll /ll

挂的原因有二:*max_element(d + 1, d + n + 1) == n + 1 和 long long。

T3 极其神秘。幸亏想到了欧拉路径可以用度数来判,得了 \(20\) 分。想不到可能 \(10\) 都拿不了,因为最暴力的搜索并不好写。

T4 大数学题。先跳。这是一个明智的选择。

重新做 T2。程序跑不出我人脑模拟还不行!

用了一点时间手模出了 \(n \in [5,8 ]\) 的情况!快膜拜我。但还是没有什么规律。检查了一下改了几个错误,其中最严重的错误是 \(n = 6\) 的第一行输出不对。改过来后很快发现了第一行的数的规律 \(\lfloor \frac n2 \rfloor \times \lceil \frac n2 \rceil\)。算了一下最多能拿 \(20+80 \times 20\% = 36\) 分,最少 \(100 \times 20\% = 20\) 分。感觉还不错。

快结束了,先不写 T2 正解了。最后一会时间写了 T4 的 \(10\) 分,但挂 \(0\) 了。

总结

好的:

  • T1 用了 namespace 数据分治。这样写不容易犯错。
  • T2 手模的 \(n \in [5, 8]\) 的数据都对了。这代表模拟的时候真的很有耐心。
  • 果断跳了 T4。因为它远超我的能力。

不足:

  • T1 判菊花判错了。
  • T1 没开 long long。这两点挂了 \(15\) 分。
  • T2 上来写了复杂度极假的爆搜。以后即使写打标的爆搜也要算好时间复杂度。\(2^{114514}\) 的复杂度一定别写。
  • 时间分配出了问题。T2 如果按照手模出的 \(n \le 8\) 的数据再找一段时间规律应该能做掉。

知识点

  • T1:单调栈,笛卡尔树

  • T2:找规律。

  • T3:树。

  • T4:数论。

题解

A. Imbalance

链的做法可以 P6510 奶牛排队 的单调栈 + 二分。介绍一种笛卡尔树的做法。

我们建一颗小根堆笛卡尔树。显然在 \(u\) 是其子树中的最小值。

那么对于其子树中的任意一个点 \(v\),区间 \([u, v]\) 的最小值一定是 \(a_u\)。

同理我们再建一颗大根堆笛卡尔树。对于 \(u\) 的子树中的任意一个点 \(v\),\([u, v]\) 的最大值一定是 \(a_u\)。

问题就转化成了:有两棵树,求有多少 \(u, v\) 满足两棵树中都满足 \(u\) 是 \(v\) 的祖宗或 \(v\) 是 \(u\) 的祖宗。

\(4\) 种情况分类讨论。子树可以用 dfs 序转化。于是就变成了一个二维数点。

代码非常难写。

B. 原子

找规律。证明过于抽象。

C. 旅行计划

注意到原问题等价于从树上删除一些边,使得图中存在欧拉路径。而欧拉路径可以通过求有多少点的度数为奇数来判断。这样暴力能得 \(20\) 分。

D. 简单题

真 · 简单题。

不会。

标签:11,20,炼石,笛卡尔,T2,50,T1,模拟,规律
From: https://www.cnblogs.com/2huk/p/18408971

相关文章

  • 闲话 24.9.11
    闲话哈哈,没有选题了。没有选题就不写了(最近摆的很舒服啊。等卖了题再拿题解充当闲话吧。碰壁:处理▂▕▄▄制▒▟▀问题不可以▙依赖[错误:所引对象未导引至对象实例;标准处理方法_004.rtf不存在]。不确定[已编辑]难的。推歌:樱桃簪子by天使盐feat.诗岸轻舟慢慢多......
  • 洛谷 P11021 [LAOI-6] 区间测速 题解
    题目传送门使用multisetmultiset可以看成一个序列,支持插入一个数或删除一个数,时间复杂度均为\(O(\logn)\),且能始终保证序列中的数是有序的,而且序列中可以存在重复的数(而set容器要求两两不同,且不保证有序)。一个基本事实:速度最大的时刻必然出现在两个相邻点之间。例如从......
  • 20240911 模拟赛总结
    期望得分:100+0+30=130实际得分:100+20+30=150T1感觉没有大样例也还是可以猜到那么一点的结论。k=0无解。当k≠0时,考虑交换不含1的两项,一定能使这两个位置都符合gcd(i,ai)=1,如果最后长度为奇数剩一个位置出来怎么办?那就O(n)枚举一遍找到可行的位置和它换一下即可,易......
  • 2024/09/11有感
    找了个把月工作吧,反正看过来还是重庆成都拿的offer比较多,江浙沪好不容易面试两个,面完都说项目没了,一个是合肥的做二手车的,还蛮大的,跟瓜子二手车一样,HR说技术面通过了,但是项目还没启动,让我等一个月,那拜拜了好吧;还有一个是常州的,本来我是投的上海的,后来说可以在常州办公,那挺好的,心里......
  • 2024.09.11 1856版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 【秋招笔试】9.11得物秋招(已改编)-太难了!!!
    ......
  • 代码随想录训练营day44|1143.最长公共子序列,1035.不相交的线, 53. 最大子序和,392.判
    1143.最长公共子序列这题并不要求连续子序列的要求是可以删除某些元素,但不能改变顺序。顺着上题的思路,这题也应该设立一个二维数组vector<vector<int>>dp(text1.size(),vector<int>(text2.size(),0));dp[i][j]表示的是以text1[i]为结尾的字符串和以text2[j]为结尾的......
  • 2024/9/11日 日志
    今天学习了离散数学集合的部分内容,并初步认识了数据结构中影响程序的时空,即时间复杂度和空间复杂度。对时间复杂度的计算有了掌握和了解。即1.用常数1取代运行时间中的所有加法常数。2.在修改后的运行次数函数中,只保留最高阶次。3.如果最高阶项存在且不是1,则取出与这个项......
  • C++模拟实现stack和queue(容器适配器)
    适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。简单理解,将模板参数给成容器,就是容器适配器,写成参数的容器的各种接口,均满足需要。#include<list>#includ......
  • SolidJS-每日小知识(9/11)
    知识介绍对指定SVG元素实现滚轮zoom代码分析1.对指定SVG元素实现滚轮zoom设置viewBox属性{x,y,w,h}以及缩放系数scale为信号量const[scale,setScale]=createSignal(1);//初始缩放比例const[boxLocation,setboxLocation]=createSignal({x:0,y:0});......