2014ACM-ICPC广州站题解(摘自闭幕式)
第39届ACM-ICPC亚洲区广州站题解
Ltysky摘抄自闭幕式题目分析
Problem A
满足px+qy=c的点(x,y)在一条直线上,而c的值由直线的截距确定,所以最大化c,就要在糖果(x,y)点集的凸包上根据斜率确定一个顶点,所以本题需要动态凸包算法,但是动态凸包只能处理加点,要删点的话需要结合陈丹琦分治。
Problem B
坑题,栅栏可以套另一个,这种情况下面积是大的。
Problem C
将字符串建trie图,然后满足条件的字符串分为以下两类:
- 它是一个前缀,同时也是一个后缀。这样的话这个前缀对应节点的fail指针应该指向非根节点
- 它不是一个前缀,这是用一个简单的动态规划算法,用dp[i][j]表示后面前缀长度是i,然后j表示从根节点开始沿trie图走完两个前缀之后所在节点,i>=1
首先枚举所有前缀p,如果p在trie树中没有儿子c,则dp[1][p->c]+=1,其中p->c表示从p开始走字母c所到达的节点。
之后,对于dp[i][j],枚举一个字母c,如果j->c所在节点在trie树中的深度不小于i+1,则dp[i+1][j->c]+=dp[i][j]。j->c的深度表示后一个前缀最长可以为多长,所以自然应该不小于i+1。
最后累加所有的dp[i][j]即为答案。
Problem D
由Apollonius圆定理,区域的边界是一个圆。求圆与简单多边形的面积交即可。(模板题)
Problem G
(P/Q)^2的范围可以用两个有理数确定,也就是P/Q的范围可以用两个二次根式确定。求两个二次根式连分数展开序列,在序列的公共前缀后面进行讨论确定P/Q。
Problem H
首先,如果不上高速,可以覆盖的区间显然是一个圆,然后,如果可以上高速公路,肯定沿着一条与高度公路称定角的线段上高速,再沿着同样的角下来是最优的。所以,可以简单地得出沿着高速公路走能覆盖的部分是一个菱形,求圆和菱形的面积并即可。
Problem J
考虑直径的中点(如果直径长度是偶数,可以假设在正中间增加了一个点,它的度数固定为2),则它有两棵(直径为偶数)或三棵(直径为奇数)二叉子树,其中应有两棵的高度为d/2,然后转化为有限制的有根数奇数的问题。首先预处理H_i表示高度为i的不同构的有根二叉树的数目。如有两棵子树,答案为C(H[d/2],2),否则为C(H[d/2],2)*(H[1]+H[2]+…+H[d/2-1])+C(H[d/2],3)
Problem K
水题
2014ACM-ICPC广州站题解(摘自闭幕式)的更多相关文章
- HDU 5127.Dogs' Candies-STL(vector)神奇的题,set过不了 (2014ACM/ICPC亚洲区广州站-重现赛(感谢华工和北大))
周六周末组队训练赛. Dogs' Candies Time Limit: 30000/30000 MS (Java/Others) Memory Limit: 512000/512000 K ( ...
- HDU 5135.Little Zu Chongzhi's Triangles-字符串 (2014ACM/ICPC亚洲区广州站-重现赛)
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
- HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
- 2014ACM/ICPC亚洲区广州站题解
这一场各种计算几何,统统没有做. HDU 5129 Yong Zheng's Death HDU 5136 Yue Fei's Battle
- 2014ACM/ICPC亚洲区广州站 Song Jiang's rank list
欢迎参加——每周六晚的BestCoder(有米!) Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- 2014ACM/ICPC亚洲区北京站题解
本题解不包括个人觉得太水的题(J题本人偷懒没做). 个人觉得这场其实HDU-5116要比HDU-5118难,不过赛场情况似乎不是这样.怀疑是因为老司机带错了路. 这套题,个人感觉动态规划和数论是两个主 ...
- 2014ACM/ICPC亚洲区广州站 北大命题
http://acm.hdu.edu.cn/showproblem.php?pid=5131 现场赛第一个题,水题.题意:给水浒英雄排序,按照杀人数大到小,相同按照名字字典序小到大.输出.然后对每个查 ...
- UVALive 7146 (贪心+少许数据结构基础)2014acm/icpc区域赛上海站
这是2014年上海区域赛的一道水题.请原谅我现在才发出来,因为我是在太懒了.当然,主要原因是我刚刚做出来. 其实去年我就已经看到这道题了,因为我参加的就是那一场.但是当时我们爆零,伤心的我就再也没有看 ...
- 2014ACM/ICPC亚洲区北京站
1001 A Curious Matt 求一段时间内的速度单位时间变化量,其实就是直接求出单位时间内的,如果某段时间能达到最大那么这段时间内必定有一个或一小段单位时间内速度变化是最大的即局部能达到最 ...
随机推荐
- scala加载spark MLlib等所有相关jar的问题
1.找到spark安装目录 E:\spackLearn\spark-2.3.3-bin-hadoop2.7\jars 里面放的是spark的所有依赖jar包 2.从idea里面javalib导入即可调 ...
- PHP5和PHP7引用对比(笔记)
php5在引入引用计数后,使用了refcount_gc来记录次数,同时使用is_ref_gc来记录是否是引用类型. 例如 $a = 'hello'; //$a->zval1(type=IS_ST ...
- Dubbo原理学习
Dubbo源码及原理学习 阿里中间件团队博客 Dubbo官网 Dubbo源码解析 Dubbo源码解析-掘金 Dubbo源码解析-赵计刚 Dubbo系列 源码总结+最近感悟
- [19/09/02-星期一] 基础知识_Python入门
一.计算机基础 用户界面:TUI-文本交互界面: GUI-图形化交互界面 命令行:就是一种文本交互界面,可以使用一个一个的指令来操作计算机.任何计算机的操作系统都包含命令行(Windows.Linux ...
- python UnicodeEncodeError: 'gbk' codec can't encode character ...
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character ' ...
- pistat 查看进程状态
该pidstat命令用于监视当前正在由Linux内核管理的各个任务.对于使用选项-p选择的每个任务,或者如果使用了选项-p ALL,则它将写入Linux内核管理的 每个任务的标准输出活动.不选择任何任 ...
- UESTC-1059 秋实大哥与小朋友(离散化+线段树)
秋实大哥与小朋友 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- P2220 [HAOI2012]容易题
传送门 首先 $(\sum_{i=1}^{n}a_i)(\sum_{i=1}^{m}b_i)$ 展开以后包含了所有 $ab$ 两两相乘的情况并且每种组合只出现一次 发现展开后刚好和题目对序列价值的定义 ...
- 源码编译Redis Desktop Manager | 懒人屋
原文:源码编译Redis Desktop Manager | 懒人屋 源码编译Redis Desktop Manager 2.3k 字 10 分钟 2019-10-10 文章背景 本 ...
- 剑指offer-二叉树中和为某一值的路径-python
题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...