2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17)

A

题意:有 n 个时刻,第 i 个时刻要么会在 (xi,yi) 生成一个半径为 yi 的圆,要么射击 (xi,yi) 这个点,如果该点在某个圆内则把对应圆删除并输出该圆的标号,否则输出 -1 。任意时刻圆之间不会相交(可以相切)。 \(n \le 2*10^5, -10^9 \le x_i,y_i \le 10^9, y_i > 0\)

key:线段树,结论

结论:与一条竖线相交的圆的个数不超过 \(O(\log \max y_i)\) 个。

证明:可以证明下图中,两圆的半径比是 4。也就是说最差时半径以4倍增长。

所以每次只需要找到覆盖该竖线的所有圆,然后一个个check即可。可以用线段树维护。

当一个圆插入时,它覆盖的区间最大为 \((x_i-y_i,x_i+y_i)\) 。以查找直线左边的圆为例,只要在 \(x_i\) 处把 \(x_i+y_i\) 插入,之后询问时递归直线左半边,如果区间最大值比 \(x_i\) 小则直接 return。递归到叶子时计算是否可行。

因为至多递归到 log 个叶子,所以总复杂度是 \(O(n\log n \log \max y_i)\)

仔细观察可以发现实际上只有 i+k*m 这个集合中的点有边,并且形成了一个环,而环的大小就是集合中 1 的个数。

I

题意:一个随机排列,偶数按顺序放到 e 数组中,奇数按顺序放到 o 数组中。每次可以询问 \(e_i\) 和 \(o_j\) 的大小关系。求在 \(3*10^5\) 的询问数下输出 e 和 o 。 \(n \le 10000\)

key:排序,交互

考虑快排:每次把区间分为两段。

枚举 o 中的每个数,此时考虑有若干段区间,该数一定存在在某个区间中间(或者是 1 或 n,这个要特判)。由于区间之间存在有序性,所以可以先对所有区间二分,此时该数只会落在两个区间内,然后再从两个区间里暴力判断。由于是随机排列,所以可以证明总询问数是 \(O(n \log n)\)

L

题意:给出树上 m 条路径,询问是否有两条路径相交(包含不算)。 \(n,m \le 2*10^5\)

key:树剖,随机权值

考虑路径覆盖。相离好说,现在问题是如何把相交和包含区分出来。

考虑相交:即做路径覆盖时,被覆盖的每一个点的覆盖状态一致(都没被覆盖/都被某些路径覆盖),否则就一定存在相交。

为了在每个点上保存“被覆盖的状态”,容易想到哈希。实际上只要给每个路径附一个随机的权值,那样可以认为在做的过程中它们任意两个集合的权值异或和不相同(虽然所有集合的异或和肯定有相同的,但是算法执行过程中不会遍历太多的集合)。此时覆盖一条路径时只需要每个点异或上该路径的权值即可。

2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17)的更多相关文章

  1. 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) 日常训练

    A - Archery Tournament 题目大意:按时间顺序出现靶子和射击一个位置,靶子的圆心为(x, y)半径为r,即圆与x轴相切,靶子不会重叠,靶子被击中后消失, 每次射击找出哪个靶子被射中 ...

  2. ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbilisi, November 24, 2010

    ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbil ...

  3. Editing 2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)

    NEERC 11 *wiki链接[[https://acm.ecnu.edu.cn/wiki/index.php?title=2011-2012_ACM-ICPC_Northeastern_Europ ...

  4. 2012-2013 ACM-ICPC Northeastern European Regional Contest (NEERC 12)

    Problems     # Name     A Addictive Bubbles1 addictive.in / addictive.out 2 s, 256 MB    x438 B Blin ...

  5. 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)C - Cactus Jubilee

    题意:给一颗仙人掌,要求移动一条边,不能放在原处,移动之后还是一颗仙人掌的方案数(仙人掌:无向图,每条边只在一个环中),等价于先删除一条边,然后加一条边 题解:对于一颗仙人掌,分成两种边,1:环边:环 ...

  6. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) H Heroes Of Might And Magic (隐含dp)

    问题是求一个方案,实际隐含一个dp.法力是递减的,所以状态是DAG,对于一个确定的状态,我们贪心地希望英雄的血量尽量大. 分析:定义状态dp[i][p][h]表示是已经用了i的法力值,怪兽的位置在p, ...

  7. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) A Amusing Numbers (数学)

    其实挺简单的.先直接算出之前已经排在k这个数前面的数字.比如543是三位的,那么100~543都是可以的,两位的10~54. 如果还需要往前面补的话,那么依次考虑1000~5430,5430是上界不能 ...

  8. 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)

    NEERC 15 题解1 题解2 官方题解

  9. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)

    B Bricks 计算几何乱搞 题意: 给你个立方体,问你能不能放进一个管道里面. 题解: 这是一道非常迷的题,其问题在于,你可以不正着放下去,你需要斜着放.此时你需要枚举你旋转的角度,来判断是否可行 ...

随机推荐

  1. idea自定义模版

    点小灯 编辑live模版设置 模版全称 private static final Logger logger = LoggerFactory.getLogger($classname$.class); ...

  2. 组件state

    一.设计合适的state 1.1 定义: state代表一个组件UI呈现的完整状态 stae代表一个组件UI呈现的最小状态集[所有状态都用于组件UI的变化,没有任何多余的状态] 1.2 state和p ...

  3. git本地代码回滚

    git本地操作有时会有误删误改并提交的时候,此时可以通过回滚获得之前的特定版本 1. 查看log 输入  git log  查看commit记录 [xxxxxxx]$ git log 结果大致如下(根 ...

  4. HDU 5423:Rikka with Tree Dijkstra算法

    Rikka with Tree  Accepts: 207  Submissions: 815  Time Limit: 2000/1000 MS (Java/Others)  Memory Limi ...

  5. 字符串处理 - ANSI - Unicode - UTF8 转换

    #include <stdio.h> #include <windows.h> #include <locale.h> #define BUFF_SIZE 1024 ...

  6. 桥接 brctl

    把eth0和wlan0桥接在一起 作用:测试wlan0网卡的并发性能   两个网卡桥接后把linux主机模拟成一个“无线路由交换机” Vi   br0.sh #!/bin/bash ifconfig ...

  7. sp__helptable, sp__help******* help 存储过程

    from:  https://sqldbaknowledgeshare.wordpress.com/2014/11/27/general-help-procedures/ GENERAL HELP P ...

  8. web前端学习 roadmap

    <tag attribute="value">content</tag>

  9. 命令行的操作——cd

    初学命令行,总是提示找不到有关的文件,当时的我啥也不知道,最后就很惨,啥也找不到 后来就只好自己上网找资料了 以下博文改编自小佳的博客 在需要处理不同路径下的文件的时候,经常要在命令行模式下切换目录, ...

  10. dp--最长上升子序列LIS

    1759:最长上升子序列 总时间限制:  2000ms 内存限制:  65536kB 描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的.对 ...