题意:给定一个数字x,将它按照十进制分成许多位,组成一个集合,每次都挑选集合中最大值与最小值,将两者乘积加在x上,问k此操作后为多少?
题解:显然经过有限次操作之后,可以使最小位变成0,之后无论怎么操作都是0。
题意:给一段数字,将这些数字分组,在分配完之后,规定数i所在的集合必须满足个数≥i,问最多能分出多少个组。
题解:经过枚举发现,有一种方案一定是最优的,将所给数排序,将值为i的数以i个为集合容量放在一起,如果无法完整的分成整数的个数集合,则把剩余的个数加在下一个数上,以此类推。
题意:给定四个数A,B,C,D,问有多少个三角形满足三条边a,b,c,满足A≤a≤B≤b≤C≤c≤D。
题解:众所周知三角形成立条件为a+b>c,那么只要满足a+b>c即可满足成立三角形,然后我们枚举c的每一个可能的值,列出限制条件,利用线性规划即可求出取值范围,最后要注意判断取并后是否合法。
题意:a和b在玩一个游戏,a需要选取n个数数使得这些数的和正好为w,并且a需要选取一个数k小于w,b需要从当中选取一个子序列使子序列的和为k,如果b能做到,则b赢,否则a赢,其中w和n为给定的。
题解:发现,如果w≥2n,则a必定可以使得选出来的序列中最小值大于等于2,则这时选取k为2时,则一定可以让a赢。否则一定找不到k使得a必赢,证明不是显然吗……
题意:给定一个序列,有三种操作,第一种以$a$为代价让序列中一个数-1,第二种操作为以$b$为代价让序列种一个数+1,第三种操作是以$c$为代价让一个数+1,同时让一个数-1。问要将序列中所有数都变成一样的最少需要花费多少代价。
题解:首先和容易想到枚举最终的数,肯定不能暴力枚举,所以要考虑答案随最终的数变化的轨迹,发现如果最终高度很小,则花费很大,最终高度很大,花费同样很大,最小值一定在中间某点取得,而且变化近似为二次曲线关系,则容易想到三分法,现在考虑给定高度,计算花费,首先可以意识到一点,一次第三种操作可以抵消一次第一,二种操作,接下来只要比较$a+b$和$c$哪个大,即可解决问题。