首页 > 其他分享 >2023/3/11杂题总结(未完)

2023/3/11杂题总结(未完)

时间:2023-03-11 22:11:52浏览次数:42  
标签:11 那么 到达 这道题 2023 直径 杂题 我们 关键点

ELCA

这道题的整体思路就是, 对于一个 lct , 我们能够维护的东西, 需要保证能够在较优的时间内完成实边修改和区间合并(就是得保证支持实虚边转化和平衡树的维护), 那么这道题, 如果我们考虑减掉或者减小实儿子会使本点贡献怎么变, 发现改变的是当前点的权值乘以虚儿子的子树点数之和加一再乘以实儿子子树的变化量。 到此, 要维护的也就一目了然了。

The Majestic Brown Tree Snake

关键在于找到关键的点(能否满足主要和这些点), 这道题的关键点就是连着三个长度大于蛇长度的路径的点, 当且仅当蛇头或者蛇尾能够到达这种点, 我们能够输出Yes(明显能到达就能转向, 不能到达我们直接当这个点不存在, 然后如果一棵树一个这样的点都没有, 那么我们首先考虑如果蛇不在这棵树的直径上, 递归证明, 如果在直径上, 那么我们考虑如果它能离开这条直径, 就说明这个直径上某个点连着一条长度大于等于蛇长的非直径链, 那么跟据这是直径, 那么这个点到达直径的两端不能小于这条链的长度, 因为小于了的话, 这就不是直径了, 那么也即是存在关键点了, 不符合不存在关键点的假设, 所以说, 如果不存在关键点, 蛇无法离开), 然后还有一个关键在于关键点之间的关系, 容易发现这个关系就如果到达的了一个关键点, 就可以到达其它所有的关键点(反正有连着三个可以完全装下蛇的链, 要走哪边先全缩到其它方向上, 然后再直接往目标方向跑就行)。 那么我们只要随便找一个点, 然后贪心的去跑, 检查能否到达就、行了。 具体的, 我们将关键点当成根, 不停地将头先跑到当前能到达的最深位置, 然后再将尾跑到当前能到达的最深位置, 如果某个时候头在尾的祖先(或者反过来), 那么可以直接跑到根。贪心证明就省略了。

特别说明:本人以上的所有文字, 好像都把蛇的长度减一直接写成了蛇的长度, 不过意会即可, 不必纠结。

Swap Pass

这道题的思路比较巧妙, 首先我们从样例和翻译出发, 合理推测这道题很可能没有无解, 接着跟据问题是归位所有的 \(ai\) (其实主要应该还是要看到排列)我们再想到将 \(ai\) 连一条到 \(i\) 的边, 我们可以得到一个一个(警觉)的环。 对于一个环, 我们首先试一试直接将一个点归为:
归位前:
image
直接归位 \(ai = 1\) 后:
image
我们发现这个图变成了 \(1\) 和另一个环。 同样, 我们再归位 \(6\) 可以发现:
image
所以, 我们只要每次还原同一个位置上的数, 那么只有一个环的话一定能将所有点还原, 而直角坐标系中所有线段会组成一个放射状的图, 由无三点共线可知, 这个图是不可能有交点的。
那么如果有多个环呢?
我们先考虑两个环, 我们随意交换两个环上的位置:
交换前:
image

交换 \(1\) 和 \(8\) 后:
image

可以发现, 交换后整个图变成了一个完整的环, 所以我们得到结论, 有多个环的环, 不考虑不相交的限制, 我们可以
选择两个不同的环通过随便在两个环上分别选点进行交换。
再回到一个环的时候, 那个时候只要是操作同一个位置就行, 所以可以随便选点。 再看看多个环的情况, 我们同样随便选个点, 建立直角坐标系, 按每个点所表示的向量的夹角对点排序, 然后依次判断是不是同一个环, 如果不是就交换一下, 跟据多边形, 我们可以容易地知道如果没有两个点所代表的向量夹角大于等于 \(\pi\) 那么一定没有点相交:
(大概长这样)
image
但如果存在夹角大于 \(\pi\) 的, 那么理论上可能会是:
image
但其实, 我们不连这条边, 我们也是能连接所有的环(考虑不连这个边, 连其他所有的合法边)
最后, 可能会出现中间的点是单独的, 初始已经复位的, 那么不影响, 我们直接判断就行。

标签:11,那么,到达,这道题,2023,直径,杂题,我们,关键点
From: https://www.cnblogs.com/flower-dream/p/17206558.html

相关文章

  • 2022/3/11 考试总结
    时间安排7.30~8.00先看T1,感觉是某种很典的模型,想了个做法,建出dfs树跑树形dp。样例过了,因为暴力很难写而且还要SPj就直接交了。8.00~10.00推了推T2,感觉解是惟一的,于是......
  • 3.11今日总结
    今天学习了安卓的日期控件CardDatePickerDialog.builder(this).setTitle("SETMAXDATE").setOnChoose(listener=object:CardDatePi......
  • 美团3.11笔试记录
    自我感觉良好,尤其是我很菜情况下,幸运的没有碰到比较离谱的题第一题签到第二题有代价的走格子吃金币,二维dp,这题接近AC,为了赶时间没管第三题看流星,每个流行有起始时间和......
  • 2023.3.11
    传递实参函数定义中可能包含多个形参,因此函数在调用时也就包含多个实参。向函数传递实参的方式很多,有位置实参、关键字实参,还可使用列表和字典。1.位置实参使用位置实参要......
  • 2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛
    https://ac.nowcoder.com/acm/contest/52244A-AXorBProblem给定序列\(a_i\),求有多少数对\((i,j)\)满足\(a_i\oplusa_j=0\),其中\(\oplus\)表示按位异或......
  • 3.11号今日总结
    1.基本用法与事件处理:1)RadioButton(单选按钮)如题单选按钮,就是只能够选中一个,所以我们需要把RadioButton放到RadioGroup按钮组中,从而实现单选功能!先熟悉下如何使用Rad......
  • 2023/3/8 && 2023/3/11 模拟总结
    开摆,嘿嘿,开摆!2023/3/8IOI赛制/6道题/部分文件io集训期间的第一次模拟,看到是IOI赛制感觉好拿分,于是就挺放松的。开考之后看到T1,胡了一个二维前缀和暴力做法,爽拿3......
  • 2023年3月11日软工日报
    今天早上一直休息,下午写了个四级阅读,太菜,没法过,随缘吧,晚上我把那个app打卡不能重复打卡功能写了下。展示下,但是对我是知道的,我只是展示我填的语句switch(view.get......
  • 代码随想录11天逆波兰表达式求值
    150. 逆波兰表达式求值给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算......
  • c++11标准右值引用, 移动语义和完美转发
    0.序言学习自C++RvalueReferencesExplained(thbecker.net)1.引入1.1拷贝间接资源如果一个类的成员变量有指针,例如classMyClass{public:T*element;}......