A. PizzaForces
题解
不难发现平均每一片都需要2.5分钟。同时,我们发现超过6的所有偶数都能构造出来。于是,对于偶数,我们直接乘以2.5即可;对于奇数,加一后再乘以2.5即可。
代码
Java
C++
B. Two Tables
题解
显然,绿色的桌子一定会放在四个角,枚举四个角即可。
代码
Java
C++
C. Coin Rows
题解
我们可以发现,对于Bob来说,要么全走上边(蓝色),要么全走下边(绿色)。否则对于Bob来说一定不是最优解。因此只需要枚举Alice转弯的位置即可,然后通过前缀和快速算出Bob的得分即可。
代码
Java
C++
D. Say No to Palindromes
题解
不难发现,其子串一定是abc三个字母的某种排列的重复,这样才能保证所有子串不是回文串。比如bacbacbac...
于是我们对6种排列都预先计算好需要修改的操作数的前缀和。对于每个查询,我们遍历6种可能,然后根据前缀和求出需要改变的字符总数即可。
代码
Java
C++
E. Boring Segments
这个题的关键点在于,结果只取决于w的最大值和最小值。因此考虑按w排序后,选取一个最小的区间,使得恰好能够完成1-m的通路即可。