Asia-Tsukuba 2017
Asia-Tsukuba 2017
Problem A. Secret of Chocolate Poles
题目描述:有一个高度为\(l\)的堆,有三种盘:白色的厚度为\(1\)的盘,黑色的厚度为\(1\)的盘,黑色的厚度为\(k\)的盘,现在将盘放入堆中,满足:1、堆中至少有一个盘,2、高度不超过\(l\),3、最上方与最下方的盘是黑色,4、盘要黑白相间。问有多少种方案。
solution
dp
。
时间复杂度:\(O(l)\)
Problem B. Parallel Lines
题目描述:有\(n\)个点,将点两个两个配对,配对的点连成线段,问配对出的点最多有多少对平行的线段。
solution
暴力枚举配对方案,再暴力数出有多少对平行的线段。
时间复杂度:\(O(15!! \cdot 16^2)\)
Problem C. Medical Checkup
题目描述:有\(n\)个人,无限台检测器,每个人必须按顺序经过检测器,第\(i\)个人会在每台检测器前检查\(a_i\)分钟,一台检测器每次只能检测一个人,其他人只能等,问\(T\)时刻时,每个人在哪台机器前(包括正在检测或等待)。
solution
对于\(i\),若对于任何的\(j<i\),满足\(a_j<a_i\),那么这个人是重要的,这些人检测过程不受其他人的影响(除了在第一台机器前的等待),其他人会跟在重要的人的后面。看图比较方便。
时间复杂度:\(O(n)\)
Problem D. Making Perimeter of the Convex Hull Shortest
Problem E. Black or White
题目描述:有一个01
串,有一个操作:每次选择连续一段区间,将这段区间变成0
或1
,问最少多少次操作使得初始的01
串变成指定的01
串。
solution
显然,选择的区间不会相交,只会相离或者相互包含,相离的可以dp
,相包含的区间是有规律的,当一个区间变成同一个数字时,将这段区间变成目标区间的最少操作就是单段单段修改数字。 可以用单调队列来加速dp
。
时间复杂度:\(O(n)\)
Problem F. Pizza Delivery
题目描述:给出一个\(n\)个点的有向图,每次将图中的一条边换向,问点\(1\)到点\(2\)点距离是否有变短,或是没变,或是变长。
solution
预处理出\(1\)到每个点的距离以及每个点到\(2\)的距离,从\(1\)到\(2\)跑一次最短路径,然后将属于最短路径的边找出来,得出来的图是一个DAG
,拓扑排序一下,就可以知道哪些是桥。有了这些预处理后,每一个答案都很容易得到。
时间复杂度:\(O(nlogn)\)
Problem G. Rendezvous on a Tetrahedron
题目描述:有一个正四面体,有两只蚂蚁在\(A\)出发,对着某条边以一定角度各走一段距离,问最后它们会不会在同一个面。
solution
恶心的计算。
时间复杂度:\(O(1)\)
Problem H. Homework
Problem I. Starting a Scenic Railroad Service
题目描述:有\(n\)个人坐火车,每个人有一个起点和终点,\(n\)个人按顺序预定座位,方案一:每个人预定时能选一个空位,如果可以,这个人会优先选择别人没坐过的位置。方案二:每个人预定的位置由售票员决定。问两种方案分别最少需要多少座位。
solution
对于第一种方案,假设\(f(p)\)表示第\(p\)个人的区间与多少个人的区间相交,答案就是\(max(f(p)+1)\)
对于第二种方案,答案就是区间最多有多少人覆盖。
时间复杂度:\(O(n)\)
Problem J. String Puzzle
Problem K. Counting Cycles
题目描述:给出一个图,问图中有多少个简单环。
solution
不会