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
不会