NOIP2018 11.04 比赛 总结

T1

荒诞(absurdity)

题目都是花言巧语,代码就几行。。发现性质,字典序就是原序。

所以直接 i^2 求和就行了,这题数据水,可以直接 O(n),

如果数据大了可以 O(1) ,有公式的:

ans=(n*(n+1)*(2n+1))/6 

T2
失意(failure)

要是交最大。

dalao们有用堆,而我用树状数组。a[l]+1   a[r+1]-1

用 L、R 记录当前最大合法区间。

维护到 p 为止有多少区间覆盖,若大于等于m 则符合。

数据大了注意要离散化唔哦

T3

快速幂 + 容斥。。

因为有 K 天,所以要 ksm。

用 f[i] 记录包含 i 这个状态的方案数。

根据容斥原理:当满足 i 个人时若 i 为奇数则对答案贡献为正,否则为负。

推荐一句巧妙的位运算:for (int j=x; j; j=(j-1)&x) f[j]++;   

巧妙地将包含于 x 的所有状态全部弄出来了。。

猜你喜欢

转载自www.cnblogs.com/Frank-King/p/9904001.html