01 2020 档案

摘要:题中所给的判定条件似乎比较神奇,那么用严谨的话来说就是对于两个格子(x,y)和(x',y'),如果满足:1.$x\le x'$;2.从(x,y)通过x,x+1,……,n行,允许向四个方向走,不允许经过石头的位置/画外,可以到达(x',y')若(x,y)有水,那么(x',y')也有水这个性质似乎并没有 阅读全文
posted @ 2020-01-30 21:48 PYWBKTDA 阅读(326) 评论(0) 推荐(0) 编辑
摘要:先考虑不要求有洞,那么可以将所有权值排序,然后不断插入,那么一个连通块就是一个答案,加上连通块大小即可考虑并查集如何判断是否有洞,可以发现对于任意一个无洞的直角多边形,都有$90度内角-90度外角=4$,而如果有洞显然就不是了(容易发现如果有k个洞,那么上述的值就应是$4-4k$)这个角度看上去很难 阅读全文
posted @ 2020-01-28 18:23 PYWBKTDA 阅读(146) 评论(0) 推荐(0) 编辑
摘要:分治,考虑分治到[l,r]的区间(设$mid=(l+r)/2$),将询问分为两类:1.在左/右区间,直接递归下去;2.跨越中间,那么处理出两个数组:L[i][j]表示左区间在开头第i个位置,以数字j为结尾的上升子序列个数(不跨越mid),右区间同理(L和R的计算很简单,只需要再处理出一个L[i][j 阅读全文
posted @ 2020-01-27 13:08 PYWBKTDA 阅读(417) 评论(0) 推荐(0) 编辑
摘要:由于交换是相邻交换,所以分为两类:1.左右区间内部交换,那么一定会让逆序对数量$\pm 1$,也就是说如果没有左右区间之间交换,那么答案就是$|ansL-ansR|$(ans表示逆序对数量)2.左右区间之间交换,考虑枚举左边最终有多少个1,不妨假设比原来多(原来少一样,但不能都异或1之后重复一遍,会 阅读全文
posted @ 2020-01-26 18:39 PYWBKTDA 阅读(153) 评论(0) 推荐(0) 编辑
摘要:考虑用f[i][j]表示以i为起点(i是时间,所以要离散)选$2^j$条线段(这里不是时间)最小的终点,预处理用倍增的方式来求即可预处理出这个数组后,就可以很快的求出在$[l,r]$的时间内最多能选多少条线段,类似于树上的倍增(注意判断超过最大时间的情况)然后从前往后枚举每一段时间,考虑能否加入,当 阅读全文
posted @ 2020-01-19 11:08 PYWBKTDA 阅读(167) 评论(0) 推荐(0) 编辑