A. Cutting Banner
关键字:[读题][字符串][枚举]
坑点:能不能只减去某一段字符串把剩下的按原来的顺序连起来组成"CODEFORCES",而减下一段"CODEFORCES"是不行的
e.g. "CODEFAAAAORCES"是可行的 而 "AACODEFORCESAA"是不可行的
B. Quasi Binary
题意:给出一个数n,求最少用几个形如"1010"这样只包含‘0‘和‘1’的数相加得到
关键字:[贪心]
解法:因为每次最多使n的每位减少1,总次数就是n的所有位中最大的数。如果n的某位不为0就减少1,为0不变,去除前导0,就是每次需要的数
C. Tourist‘s Notes
题意:一个人去爬山,已知n天中某m天的爬山高度,且相邻两天的高度差$\leq 1$,求这个人在这n天中爬的最高高度是多少,如果矛盾输出-1
关键字:[数学公式]
解法:显然如果相邻的两天的高度差大于时间差一定是"IMPOSSIBLE"。最高的高度一定在某相邻的两个时间点之间出现。设相邻的两个时间点为$dx,dy(dx < dy)$,高度分别为$hx$,$hy$,取得最高点时一定是从$dx$向右增加,$dy$向左增加时相差最小的点,设为$p (dx \leq p \leq dy)$。从$dx$经过$p$天,$dx$的高度$dpx = hx + p$ ,$dy$的高度$dpy = hy + ((dy-dx)-p)$, 令$dpx = dpy$ ,解得 $p = (hy-hx+dy-dx)/2$,则此段的最高高度为$hx + p = (hy+hx-dy-dx)/2$,维护m+1段就行了(包括头尾)
D. Weird Chess
题意:
时间: 2024-11-07 06:29:30