2019牛客暑期多校训练营(第九场)

A The power of Fibonacci

分析:将 1 0 9 10^9 109拆分成 2 9 ∗ 5 9 2^9*5^9 2959,然后各自求循环节,之后采用中国剩余定理合并

B Quadratic equation

分析:解方程求二次剩余

C Inversions of all permutations

题意:给定长度为n的数列,共有 n ! n! n!中排列,给定每个排列 t i t_i ti的值为 b t ( r i ) b^{t(r_i)} bt(ri), t ( r i ) t(r_i) t(ri)是排列中逆序对的个数
分析:先假设没有重复的值,那么将第k小的值加入的贡献是 ∗ ( b 0 + b 1 + b 2 + . . b k − 1 ) *(b^0+b^1+b^2+..b^{k-1}) (b0+b1+b2+..bk1),我们先将所有数看成是没有相同元素的,求出答案,然后考虑容斥,如果一个数出现了i 次,那么最后的结果应该除以 b 0 + b 1 . . + b i − 1 b^0+b^1..+b^{i-1} b0+b1..+bi1
参考代码code

D Knapsack Cryptosystem

折半

E All men are brothers

dp,注意dp回退即可

F Birthday Reminders

题意:小A有n个朋友,其中第i个朋友会在时间 t i t_i ti想起今天是它的生日,一个人在时刻 t t t祝贺过小A之后,它会在 t + 1 t+1 t+1告诉其它人,小A脸盲,只能记住时间 t t t有多少个朋友祝她生日快乐,问有多少种可能排列
分析: 枚举t时刻的人数即可,注意限制不能超过小于t时刻想起的人,不能大于t时刻想起的人加上个时刻提醒的人
参考代码code

G Checkers

waiting

H Cutting Bamboos

线段树

I KM and M

题意
在这里插入图片描述
分析:考虑每一位的贡献, c o u n t ( i ) = ( k ∗ M ) & M & ( 2 i ) = 2 i count(i) = (k*M)\&M\&(2^i)=2^i count(i)=(kM)&M&(2i)=2i,
也即 ⌊ k ∗ M 2 i ⌋ − ⌊ k ∗ M 2 i + 1 ⌋ ∗ 2 , 1 ≤ k ≤ N \lfloor \frac{k*M}{2^i}\rfloor -\lfloor \frac{k*M}{2^{i+1}}\rfloor*2,1\leq k\leq N 2ikM2i+1kM2,1kN
参考代码code

J Symmetrical Painting

参考代码:code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值