摘要: B 思路 看时间复杂度肯定是预处理o1查询,每个数字只能选择一次,可以使用01背包求解 f[i]+=f[i-a[j]*a[j],枚举i时,使用一个变量max,表示上一层枚举到的最大值,如果使用N的话其实好多f[i]并没有更新 代码: int fib[N]; int f[N]; void init() 阅读全文
posted @ 2022-04-19 14:29 指引盗寇入太行 阅读(65) 评论(0) 推荐(1) 编辑
摘要: D. Reverse Sort Sum 思路 首先可以观察到每个1都加了n次,所以总共1的个数就是sum/n,然后排完序1都在后面,后面也就好确定,最后一个数字只能有1和n两种情况 1的时候这一位是0,n的时候这一位是1,然后向前移一位,同时把f(a,n)减去,可以使用线段树来维护 代码: void 阅读全文
posted @ 2022-04-19 14:24 指引盗寇入太行 阅读(27) 评论(0) 推荐(0) 编辑