2021-12-19 14:00:00 ~ 2021-12-19 17:00:00
T1:求兔子数量
容易发现每个月增加的兔子数就是这个月的老兔子数
老兔子数则是
即递推式
\ T2:求最少交换次数使得一个排列有序
很多人都发现了
就是每次把位置不对的换过来,其实这样换出来的一定是最优解。
但
因为数列是个排列,满足
这样换位置的时候就不用重新扫一遍了,时空复杂度
\ T3:输入一个纸牌牌面判断有几个比它大
读入字符即可判断牌面是什么
如果读入的字符是
\
T4:求最少几个半径为
对于每个能量点,能覆盖它的圆的圆心位置集合是一个以自己为圆心,半径为
这个圆与坐标轴相交得到的是一个区间,也就是说,对于每个能量点,能覆盖它的圆的合法圆心位置集合是一段区间。
求出所有点对应的区间
现在问题变成每段区间内都必须有一个圆心,求最少圆心数量
把所有区间按右端点从小到大排序贪心,每次遇到一个区间内没有圆心,就取其右端点作为一个圆心。
显然这样得到的圆心数量一定最小
\
T5:每次可以前进
比较裸的
设
转移方程比较显然
在这个范围下答案很小,只有
直接爆搜可能就有不少分
然后加个可行性剪枝就过了……
另外有一种严格
这里就不详细说了,详情见 P4133 题解