由于太懒了,好久没更新了。发个题解好了。

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题解的更多相关文章

  1. <题解>[IOI2019]景点划分

    题目传送门(luogu) 题目传送门(loj) 这个题对我来说可以算是超出了我的能力范围 被学长拿来教我做构造,构造题真简单,构造题真是人,构造题真能手切... 首先对于本题,必须要知道dfs树这东西 ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

随机推荐

  1. zcmu 1540第k大数

    1540: 第k大数Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Web Board]Description有两个序列a,b,它们的 ...

  2. Spring mvc请求处理流程详解(一)之视图解析

      本文链接:https://blog.csdn.net/lchpersonal521/article/details/53112728 前言 Spring mvc框架相信很多人都很熟悉了,关于这方面 ...

  3. MVC学习笔记(四)---使用linq多表联查(SQL)

    1.数据库原型(Students表中的ID和Scores表中的StudentID是对应的) 2.实现效果:查询出每个学生各个科目的成绩(用的是MVC学习笔记(三)—用EF向数据库中添加数据的架构) C ...

  4. 2019 智联招聘java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.智联等公司offer,岗位是Java后端开发,因为发展原因最终选择去了智联,入职一年时间了,之前面试了很多家公 ...

  5. elasticsearch原理学习笔记

    https://mp.weixin.qq.com/s/dn1n2FGwG9BNQuJUMVmo7w 感谢,透彻的讲解 整理笔记 请说出 唐诗中 包含 前  的诗句 ...... 其实你都会,只是想不起 ...

  6. JAVA基础之JSP与EL技术、JSTL技术

    要牢记jsp四大作用域(pageContext域:当前jsp页面范围      request域:一次请求   session域:一次会话   application域:整个web应用)以及九大内置对 ...

  7. easyui datagrid treegrid 取消行选中、取消高亮

    .datagrid-row-selected{ background: #FFFFFF !important; color: #404040; } 一.思路来源:https://www.cnblogs ...

  8. CASE WHEN 函数

    --Case函数: --有两种格式: -- 1.简单Case函数. -- 2.Case搜索函数. --1.简单Case函数: -- CASE [COLUMN_NAME] -- WHEN ['条件参数' ...

  9. python变量的内存机制

    python变量的内存机制 作为一门简单易用的语言,且配备海量的库,python可谓是程序员手中的掌中宝,编程本身就是一种将人类思维转化为计算机思维的技术,如果不需要去追求极致的运行效率同时又不限制于 ...

  10. centos7和centos6安装httpd

    编译安装httpd http://apr.apache.org/download.cgi 下载 apr-util-1.6.1.tar.bz2 apr-1.6.5.tar.bz2 http://http ...