首页 > 其他分享 >IOI2019

IOI2019

时间:2023-01-23 11:34:13浏览次数:59  
标签:... IOI2019 le 为例 forall cases rightarrow

排列鞋子(1)

确定最终顺序后,操作次数即逆序对数

对于相同大小的鞋子,显然按出现顺序(即第\(i\)个\(x\)和\(-x\))配对

对于两双鞋子,显然按每双中靠前的一只排序不劣

用树状数组统计即可,时间复杂度为\(O(n\log n)\)


景点划分(4)

参考这里


矩形区域(3)

记\(\begin{cases}S_{i}=\{[l,r]\mid \forall j\in [l,r],a_{i,j}<a_{i,l-1},a_{i,r+1}\}\\T_{j}=\{[l,r]\mid \forall i\in [l,r],a_{i,j}<a_{l-1,j},a_{r+1,j}\}\end{cases}\)

以\(S_{i}\)为例,不妨假设\(a_{i,l-1}<a_{i,r+1}\),则\(a_{i,r+1}\)即\(a_{i,l-1}\)右侧第一个比其大的元素

换言之,有\(\forall i\in [1,n],|S_{i}|\sim O(m)\),同理\(\forall j\in [1,m],|T_{j}|\sim O(n)\)

预处理出\(S_{i}\)和\(T_{j}\)后,原问题的条件即\(\begin{cases}\forall i\in [r_{1},r_{2}],[c_{1},c_{2}]\in S_{i}\\\forall j\in [c_{1},c_{2}],[r_{1},r_{2}]\in T_{j}\end{cases}\)

枚举\(r_{1}\)和\([c_{1},c_{2}]\in S_{r_{1}}\),并统计满足条件的\(r_{2}\)——

对于第\(1\)个条件,处理出\([c_{1},c_{2}]\in S_{i}\)的\(i\),即要求\(r_{2}\le r_{1}\)最后一个连续的数

对于第\(2\)个条件,改为枚举\(c_{1}\)和\([r_{1},r_{2}]\in T_{c_{1}}\),并类似前者求出\(c_{2}\),即在枚举超过\(c_{2}\)时将对应\(r_{2}\)删除

结合两者,用树状数组维护即可,时间复杂度为\(O(n^{2}\log n)\)(默认\(n,m\)同阶)


折线(3)

假设节点遍历顺序为\(P_{1},P_{2},...,P_{n}\),则构造路径

\[(0,0)\rightarrow (x_{P_{1}},0)\rightarrow (x_{P_{1}},y_{P_{2}})\rightarrow (x_{P_{3}},y_{P_{2}})\rightarrow ...\rightarrow (x_{P_{n}},y_{P_{n}}) \]

这条路径需满足的条件为\(\begin{cases}y_{P_{1}}\in [0,y_{P_{2}}],y_{P_{3}}\in [y_{P_{2}},y_{P_{4}}],...\\x_{P_{2}}\in [x_{P_{1}},x_{P_{3}}],x_{P_{4}}\in [x_{P_{3}},x_{P_{5}}],...\end{cases}\)

(这里\(\in [l,r]\)仅表示在\(l\)和\(r\)之间,不保证\(l\le r\))

每个不满足的条件就需要额外使用一条线,因此至多有两个条件不满足

考虑依次取最小的\(x,\)最大的\(y,\)最大的\(x\)和最小的\(y\),仅有当某一项比下一项还优时不满足

(以"最大的\(y\)"为例,其条件为\(\in [最小的x,最大的x]\),左边界显然,右边界要求即上述)

将这类点单独考虑,其构成两个\(x,y\)均单调的部分,内部从小到大排列即可

如果任意排列最坏有\(4\)个不满足条件,由于是提答题,可以乱搞处理

一种乱搞:爆搜后两个部分是否翻转和前后顺序(共\(8\)种),总有一组可行


视觉程序(2)

将曼哈顿距离转化为切比雪夫距离,即

\[|r_{1}-r_{2}|+|c_{1}-c_{2}|=\max(|(r_{1}+c_{1})-(r_{2}+c_{2})|,|(r_{1}-c_{1})-(r_{2}-c_{2})|) \]

此时,距离为\(k\)即其中一项为\(k\)且另一项\(\le k\),这里以前者为例:

求出\(x_{s}=\or_{i+j=s}a_{i,j}\),则对应项即其中两个\(1\)的\(s\)之差(重合即为\(0\))

具体的,差为\(k=\or_{s}(x_{s}\and x_{s+k})\),差\(\le k=(\bigoplus_{s}x_{s})\or\left(\or_{s}\big(x_{s}\and (\or_{j\in [1,k]}x_{s+j})\big)\right)\)

操作次数为\(O(n)\),操作元素为\(O(n^{2})\)(默认\(n,m\)同阶)


天桥(4)

参考这里

标签:...,IOI2019,le,为例,forall,cases,rightarrow
From: https://www.cnblogs.com/PYWBKTDA/p/17065075.html

相关文章

  • P6751 [IOI2019]视觉程序 题解--zhengjun
    提供一种简介易懂的做法。首先曼哈顿距离的绝对值比较难处理,所以可以转成切比雪夫距离。具体地说,就是\((x,y)\)变成\((x+y,x-y)\)(接下来所述的坐标都是变换后的)。这......
  • [IOI2019]排列鞋子
    $[IOI2019]$排列鞋子链接:https://www.luogu.com.cn/problem/P5749题目描述:将一个序列$A$交换到满足对于任意的$i(1<=i<=n/2)$满足$a_{i}=-a_{i\times2}$且$a_{i}<......