【2019杭州集训】12.09训练总结

昨晚爽快战斗 爆肝到十二点多

比赛思路

  • T1:按位贪心,判断发现可以用线性基,如果要求相同的话就将这两位合在一起,在之后要求这两位的异或值为0.
    刚开始TLE90了(因为我的是NM2*2的,然后又用的是bitset),然后改手打bitset,WA90了,刚开始调不出来,转战T2T3之后再回来肉查才发现有个地方没有开longlong
    在这里插入图片描述
    在这里插入图片描述
  • T2:N3都没有打暴力都没有打。。。
  • T3:神奇的构造题?理解错了题意然后暴力都不会打,大胆打表获得10分。

赛后消化

  • 一堆人过了T1,我才110分,菜爆了。
  • T2好像是一个每一个点的DP值是一个凸壳,要支持将凸壳拍扁,用平衡树维护,启发式合并转移(口胡)
  • T3理解完题意之后再想一想点分治似乎也不是那么难。
  • 想了很久怎么根据每一层的重心将整棵树统一,最后发现只需要给边赋值然后DFS扫一遍就好了Orz。

难题选讲(计算几何)

  • 捕捉原题。
  • 话说计算几何我也就只能口胡了啊。
第一题
  • 给n个圆(n<=200),问一个点能不能不经过任何一个圆覆盖的范围到无限远的地方。
  • 两个圆相交就将它们圆心相连,判断一个点能否被一个多边形包围。
  • 考虑将每一条边根据两个端点以询问点为原点的极角之差为边权,当作有向图,floyd找最大环,如果环的长度为2π2pi,那么就被包围。
第二题
  • 问随机去掉一个点后凸包的期望点数(n<=1e5).
  • 经典题目。
  • 考虑在凸包上的点,去掉之后会有一个三角形里的点加入凸包,每一个点只会被两个三角形覆盖。对于每一个三角形里的点做凸包即可。
  • 问题在于怎么判断一个点在哪个三角形里面。
  • 找到凸包的重心,然后极角排序,相邻点和重心将凸包分成n个三角形,每一个点可以找到一个区域,然后只需要判断这个区域两边的三角形就好了。
第三到五题
  • 咕咕咕

总结

  • 一天还是能搞出两题的,问题不大。
  • 一些稍微复杂一些的数据结构我还不够熟练。
  • 题意千万不能看错。
原文地址:https://www.cnblogs.com/DeepThinking/p/13090903.html