151212总结

来源:互联网 发布:网络传销举报中心 编辑:程序博客网 时间:2024/06/02 01:29

T1
数学期望题,不会做,就是列方程然后递归求,用Hash处理大概可以控制到100W种情况

需要的知识:数学、hash

T2
每个a → b要增加的数为 4k + b ,若增加的值都为b,那么 ans = a[i]>a[i1]a[i]a[i1]
对数列进行差分后 ans = d[i]>0d[i]
现在考虑 4k
对每一段数增加 4 后,只会使数列中前面一个数 (设为 a) + 4,后面一个数 (设为 b) -4
现在要是 ans 更小,讨论后发现只有 a <0 && b > 0 && |a| + |b| > 4 时成立
则存在三种情况 (a,b) = (-2 , 2) , (-2 , 3) , (-3 , 3)
考虑负数,-3 相比于 -2 更优,所以 -3 具有优先级
考虑正数,若 2 先匹配,则 -4 后会产生一个新的 -2,和先匹配 3 的贡献一样,所以正数不具有优先级
所以只要扫一遍,记录前面还有几个 -2 , -3 ,每次优先匹配 -3 就可以得到答案了

需要的知识 :差分

T3
讨论后发现。。。
若不受n、m限制,则所占格子与棋子的关系为
mx = 2n^2 + 2n + 1 ( 4n )
2n^2 + n (4n - 1)
2n^2 (4n - 2)
2n^2 - n (4n - 3)

假设 n <= m
1) ans 不受限
ans = 上述 mx (若 n 为偶数 ,则最大时可以纵向扩展一格,棋子 + 2,ans += 2n + 1)
2) ans 受 n 限制,不受 m 限制
所得菱形横向扩展增加两颗棋子扩大n格,增加一颗棋子,ans += n (n为奇) / n + 1 (n为偶)
3) ans 受n 、 m限制
则每个边角上的棋子向四角扩展,每个方向上每次扩展n ,n-1 ,n-2 …… 1 个棋子
数据太大,可以二分菱形边长

【错因】:没有特判 n = 1 or 2 的情况,二分写错(习惯(] <-_-|||>,这次想写[),然后没想清楚。。。)

所需知识 :二分

0 0
原创粉丝点击