IOI2019题解
由于太懒了,好久没更新了。发个题解好了。
shoes
首先不难证明鞋子配对一定是从前往后将同一种的左和右配对。
配好对之后首先我们可以假设左在右的左边,然后讨论可知将左边靠前的排在前面更优。
rect
先考虑只有行限制的情况,那么我们考虑从小到大插入,那么每次极大的区间就是符合题意的,这样就可以扣出O(n)个区间。
同时我们可以考虑矩形左上角,对于每个左上角考虑每个行区间的延伸长度,每个列区间的延伸长度,合并的时候是一个扫描线。
此外本题也有不带log的做法,留作习题。
split
假设a<=b<=c,那么显然有a<=n/3,b<=n/2。我们的目标就是要找到两个联通块,满足其中一个大小在[a,n-b](或在[b,n-a])。
我们对[a,n-b]和[b,n-a]都运行以下算法,简记为[l,r]。容易证明l+l<=r。
考虑dfs树。如果树上存在一条符合题意的割边,那么直接输出即可。
否则考虑重心,我们必然有去掉重心之后的每棵子树大小<l,否则这棵子树就符合题意(大小在[l,n/2]之间)。由于只有返祖边,我们只需考虑下属各联通块到重心的祖先是否有边。如果没有,那么它肯定和重心只能同属一个联通块(因为它的大小<l)。如果和重心只能同属一个联通块的大小和>r了那么无解,否则我们先把重心和重心的父亲断开形成两个子树,此时重心子树大小>r,然后我们把能连的子树一个一个抛弃重心往上面连,直到和重心连在一起的大小<=r,这时我们一定有它>=l,由于l+l<=r。
line
考虑螺旋状的构造,那么只有卡在角上的情况才会浪费步数。


把角上单独拎出来搞成两条单调折线。

需要注意的是这个构造并不对所有数据都有效(角被删掉之后会产生新角,新角不一定单调),但是可以获得满分。
vision
如果不转坐标系的话可以直接写个二进制加法器,指令数大概九千多。
转坐标系就是把曼哈顿改成切比雪夫((x+y,x-y)),这样就不用算出准确值了。
walk
首先考虑s=0,t=n-1的情况,这种情况我们肯定不会向左走。所以我们一定是每次先竖直移动一段,然后向右走,重复这个过程。
考虑一座横坐标[l,r]的天桥,如果我们自下而上经过了它,那么不如经过整座天桥。所以我们只需要取出每个天桥断点和断点下方第一个在天桥上的点,跑dijkstra即可。
接下来考虑一般情况,我们发现我们可能需要上一些天桥,但是我们注意到比如我们要从起点开始上一个天桥[l,r],如果起点在[l,r]中,我们可能会为了上这个桥往左或往右拐,但是我们只会拐到第一个能上桥的点,否则改成直接上桥不劣,所以我们只需要把桥在左右第一个能上的地方截开。终点同理。
上述东西都可以用扫描线+set来维护。
Reference:
https://blog.csdn.net/qq_39972971/article/details/99547267
https://blog.csdn.net/qq_39972971/article/details/99868638
IOI2019题解的更多相关文章
- <题解>[IOI2019]景点划分
题目传送门(luogu) 题目传送门(loj) 这个题对我来说可以算是超出了我的能力范围 被学长拿来教我做构造,构造题真简单,构造题真是人,构造题真能手切... 首先对于本题,必须要知道dfs树这东西 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
随机推荐
- JS中的逻辑运算符&&、||
原文:JS中的逻辑运算符&&.|| 1.JS中的||符号: 运算方法: 只要"||"前面为false,不管"||"后面是true还是false, ...
- apache中的vhosts的配置。
<VirtualHost *:80>ServerAdmin wangjiemengya@foxmail.comDocumentRoot "E:\wordDocument\www& ...
- 2019 家居云java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.家居云等公司offer,岗位是Java后端开发,因为发展原因最终选择去了家居云,入职一年时间了,也成为了面试官 ...
- html 随机验证码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- v-for循环列表,展开样式随手风琴
<div class="product_box" v-for="(item,index) of kinds" :key="index" ...
- 英语DYAMAUND钻石DYAMAUND单词
dyamaund and the English words dyamaund The Vertu of the Dyamaund": Gemstones, Knowledge and Va ...
- 纽约LangeEylandt长岛LongIsland
LangeEylandt n.长岛(美国) 纽约长岛 纽约长岛 (LongIsland)是北美洲在大西洋内的一个岛,最早追溯到十七世纪的1650年被命名为Lange Eylandt [1] ,位于北美 ...
- python关于try except的使用方法
一.常见错误总结 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入 ...
- Flask入门很轻松 (一)
转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/10956837.html Flask诞生于2010年,是Armin ronacher(人名)用 Py ...
- Github 上 10 个值得学习的 Springboot 开源项目
Spring Boot 几乎继承了所有 Spring 框架的优点,同时还可以让项目的配置更简化.编码更简化.部署更方便.近两年受到很多开发者的追捧,也是火热的不行! 下面给大家整理了 10 个 Git ...