T1:很有意思的题目。
发现可能会涉及到高精度。
怎么办呢?
出题人又没有让你求出具体的答案,只让你求方案,所以你只需要比较两个高精度的大小关系即可。
有过类似的题,做法就是取对数,没了。
T2:很有意思的题目 too。
看到 T ≤ 100 , a , b , c ≤ 1 0 8 T\le 100,a,b,c\le10^8 T≤100,a,b,c≤108,感觉有点奇怪。
毕竟我有个习惯:看数据范围猜复杂度。
结果……这不对呀。
算了,不管了。
大致思路:枚举一种颜色成为最终的颜色,然后其他两种颜色的差要满足是 3 3 3 的倍数,在此基础上其他两种颜色的球取一个 max 即可。
T3:我开的第一道题。
没想到吧……
看到 N ≤ 5000 N\le5000 N≤5000,盲猜复杂度是 O ( n 2 ) O(n^2) O(n2) 的。
但看了几眼之后感觉可以用单调栈来做。
反正总而言之言而总之没过大样例。
怎么办呢?仔细观察一下,猜了一个结论: x x x 数组可以被分成三段,第一段全部为 0 0 0,第三段全部为 m m m。
然后细节挂了……除法又双叒叕不加 double,还以为是精度背卡了……
T4:有趣的计数题。
首先不难发现如果满足 a i = a i + 1 a_i=a_{i+1} ai=ai+1,那么这两个数一定不会被删除。
于是把这个序列拆成多个序列,然后求出每个序列的答案最后乘起来即可。
考虑对于每个序列,设 f i f_i fi 表示算到第 i i i 个时候不同序列个数。
显然有 f 1 = f 2 = 1 f_1=f_2=1 f1=f2=1。
然后判断一下转移,如果两个点的距离大于 1 1 1,并且中间只包含两种颜色,那么显然是无法完成转移的。
于是指针随便搞一下即可。
E
很有意思的题目。
考场上没想出来,但最后才知道原来可以贪心构造。
先判掉不合法情况。
所以构造题的三大做法贪心、分治和图论。
首先将序列分成 ( n − 1 ) / k + 1 (n-1)/k+1 (n−1)/k+1块,其中后 ( n − 1 ) / k (n-1)/k (n−1)/k 块的长度为 k k k,假设第一块的大小为 p p p。
然后我们看一下:如果这一个位置不放必要点,那么从小到大贪心。否则就放必要点。
然后就没了,证明的话可以归纳一下吧……(我不会告诉你我不会证明的)