- 博客(8)
- 收藏
- 关注
原创 zr23noip10连day1
仙人掌的生成树等价于对于每个环独立的断一条边,随即发现两个短边之后的环的合并形式正是闵可夫斯基和,因此直接对于每个环建立凸包,然后两个环合并就求闵可夫斯基和,合并多个环就分治即可。目前已知命令,未知障碍物分布,请求出机器人最终有可能在的位置。的括号串,你可以交换两个相邻的括号直到括号串合法(保证一定有合法解),请求出最小的操作次数。判定可以利用线性基,与常规线性基不同,因为最高的若干位可以随意。2、两个凸包的闵可夫斯基和等价于两个凸包的所有边按极角排序后顺次首尾相连形成的图形。考虑怎样的交换是有贡献的。
2024-01-31 19:41:01 832
原创 zr23noip20连day2 C解题报告
考虑每次随机选两个偶数度的点,将他们之间的一条路径的状态取反,我们发现这样的操作仅改变这两个点度数的奇偶性。那么我们可以对度数为偶数的点两两配对,容易得出,最后要么所有点的度数都是奇数,要么只有一个点的度数是偶数。这里我的做法是以该点为根dfs求出每条边到根路径上第一个编号小于它的边并在两者间连边,从而得到一棵新的树,然后在新的树上贪心。贪心有很多方法,笔者使用的是以唯一的偶数点为根跑dfs,找到最近的编号小于它的点并进行取反操作即可。编号,现在你需要删掉若干条边,最大化度数为奇数的点的个数。
2023-10-10 17:02:43 103 1
原创 30days_U1
由于越靠近栈顶的值越小,于是我们每往后扫一个,就将其与栈顶比较,如果大于栈顶就把栈顶减一,全部下压完成之后如果栈非空,那么说明这两个人之间可以看到。考虑一个人如果被后面的某个人挡住了,那么他肯定不能看到那个人后面的任何人,因此我们考虑用单调栈做,维护这个人的身高和能够看到的对数即可。手玩的时候可以观察到,这两堆物品的相对位置始终不变,因此容易想到将堆顶接在一起,用指针在中间滑动,指向出堆的物品。考虑用一个单调递减的单调栈维护,每次试图向栈中加入新的平台时就将比它低的平台灌满,并且将这些低的平台的。
2023-09-28 20:11:12 103 1
原创 8.14 T3阿爽爱上了阿秦
dp复杂度为O(nk),总复杂度约为O(n*maxn),好像卡的有点紧(也可能是我太菜了自带大常数),但能过。于是我们可以在最外面一层循环枚举完美度,对每个完美度所对应的方案数进行dp。我首先想到的是二维dp做,但是我太菜了,不会搞最小值。我们可以发现完美度之和最多是序列中最大值/(k-1)题意很好转化,就是求该序列里所有子序列的完美度之和。此处temp为最大可以满足。
2023-08-14 13:39:26 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人