P3773 CTSC2017 吉夫特 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这个题面非常诈骗,应该是出题者故意的。

题目中那么老长串式子,其实就等价于这个长度为 \(m\) 的子序列需要满足:

这个子序列中,对于每一对相邻的前后项(总共 \(m - 1\) 对),设前项是 \(a\),后项是 \(b\),都有:

\[\dbinom{a}{b} \bmod 2 = 1 \]

至于不上升的限制,那是假的:如果中途上升,也就是存在 \(a < b\),显然会有 \(\dbinom{a}{b} = 0\),已经不满足题目的制约了。

我们考虑使用 Lucas。有:

\[\dbinom{a}{b} \equiv\dbinom{\lfloor\frac{a}{2}\rfloor}{\lfloor\frac{b}{2}\rfloor}\dbinom{a \bmod 2}{b \bmod 2} \pmod 2 \]

发现后面的组合数只有四种,分别是 \(\dbinom{0}{0}\),\(\dbinom{0}{1}\),\(\dbinom{1}{0}\),\(\dbinom{1}{1}\)。除了 \(\dbinom{0}{1} = 0\) 以外,剩下的均为 \(1\)。

然后接着对 \(\dbinom{\lfloor\frac{a}{2}\rfloor}{\lfloor\frac{b}{2}\rfloor}\) Lucas。我们发现这不就是在对 \(a\) 和 \(b\) 二进制拆位吗。

换句话说,设 \(a_i\) 表示 \(a\) 的二进制从低到高第 \(i\) 位,那么有:

\[\dbinom{a}{b} \equiv \dbinom{a_0}{b_0}\dbinom{a_1}{b_1} \dbinom {a_2}{b_2} \cdots \pmod 2 \]

显然当且仅当中间没出现过 \(\dbinom{0}{1}\) 这一项,整个同余式最后会和 \(1\) 同余。

也就是说,不存在某一位使得 \(a\) 在这一位上是 \(0\) 而 \(b\) 在这一位上是 \(1\)。

想一下,这不就是在说 \(b\) 所有为 \(1\) 的二进制位是 \(a\) 所有为 \(1\) 的二进制位的子集吗。

简单刷表 dp 就可以了。

const int maxa = 250005;
const int mod = (int)1e9 + 7;int f[maxa];signed main() {int n = read(), ans = 0;for (int i = 1; i <= n; ++i) {int x = read();for (int j = (x & (x - 1)); j; j = (x & (j - 1)))(f[j] += f[x] + 1) %= mod;(ans += f[x]) %= mod;}printf("%lld\n", ans);return 0;
}

P3773 CTSC2017 吉夫特相关推荐

  1. 洛谷P3773 [CTSC2017]吉夫特(Lucas定理,dp)

    题意 满足$b_1 < b_2 < \dots < b_k$且$a_{b_1} \geqslant a_{b_2} \geqslant \dots \geqslant a_{b_k} ...

  2. [CTSC2017]吉夫特

    [Luogu3773] [LOJ2264] [UOJ300] 题解 \(x!的2因子数f(x)=\sum_{i=1}^{ \infty} \frac{x}{2^i}\) 我们设\(g(x)=x,\)那 ...

  3. loj 300 [CTSC2017]吉夫特 【Lucas定理 + 子集dp】

    题目链接 loj300 题解 orz litble 膜完题解后,突然有一个简单的想法: 考虑到\(2\)是质数,考虑Lucas定理: \[{n \choose m} = \prod_{i = 1} { ...

  4. [CTSC2017]吉夫特(思维+巧妙)

    description 戳我看题目 solution 显然只要选出来的子序列有一个组合数为偶数,最后取模 222 的结果都会是零 有一个结论:当且仅当n&m=m时,CnmC_n^mCnm​为奇 ...

  5. [CTSC2017]吉夫特(Lucas定理,DP)

    送70分,预处理组合数是否为偶数即可. 剩下的数据,根据Lucas定理的推论可得当且仅当n&m=n的时候,C(n,m)为奇数. 这样就可以直接DP了,对于每个数,考虑它对后面的数的影响即可,直 ...

  6. 2018十二月刷题列表

    Preface \(2018\)年的尾巴,不禁感慨自己这一年的蜕变只能用蜕变来形容了. 而且老叶说我们今年没的参加清北冬令营可以参加CCF在广州二中举办的冬令营,只要联赛\(390+\)就应该可以报. ...

  7. PKUSC2018训练日程(4.18~5.30)

    (总计:共66题) 4.18~4.25:19题 4.26~5.2:17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZO ...

  8. #300. 【CTSC2017】吉夫特

    明明已经广为流传,bzojbzoj就是不贴题面 uojuoj题面传送门吉夫特 考虑Cmn mod 2≡1C_n^m\ mod\ 2\equiv 1的成立条件 根据LucasLucas定理,有Cmn m ...

  9. 【CTSC2017】【BZOJ4903】吉夫特 卢卡斯定理 DP

    题目描述 给你一个长度为\(n\)的数列\(a\),求有多少个长度\(\geq 2\)的不上升子序列\(a_{b_1},a_{b_2},\ldots,a_{b_k}\)满足 \[ \prod_{i=2 ...

最新文章

  1. 一篇文章讲懂Vmware网卡配置,解决常见问题
  2. 代数学笔记10.1: 关于对称多项式的理解和三次预解式的推导
  3. 使用遇到的问题_水性漆在使用过程中遇到的问题以及解决方案
  4. 2021年黑龙江高考成绩查询,黑龙江省招生考试信息港:2021年黑龙江高考成绩查询入口、查分系统...
  5. 12.present perfect(2)
  6. c语言动态指针数组--一种伪二维数组
  7. Linux环境下gcc静态编译/usr/bin/ld: cannot find -lc错误原因及解决方法。
  8. mos管闩锁效应理解学习
  9. C++类的构造函数及操作符()重载
  10. c51倒计时程序汇编语言,两位倒计时器程序(单片机—汇编语言).doc
  11. 深度学习word2vec笔记之基础篇
  12. LiteOS通信模组教程04-深度剖析LiteOS的AT框架
  13. J-link无法下载固件问题
  14. 概率论与数理统计(2.1-2.2)随机变量和离散型分布
  15. Java 8 将Map转换为List
  16. chrome hosts文件管理工具 空白问题的解决
  17. 关灯游戏c语言,关灯游戏 Lights out (一)(极速求解)
  18. Java-AOP(Hook)实现机制(JDK/cglib动态代理/ASM/Javassist/AspectJ)
  19. ubuntu java卸载_ubuntu如何完全卸载Java
  20. 如何用PS制作花型背景图

热门文章

  1. (二)FreeMarker模板开发
  2. echars饼状图的formatter
  3. Android studio 更换app launcher图标后还是显示之前的小人图标
  4. Intellj idea新建的java源文件夹不是蓝色,怎么解决让它成为蓝色源文件
  5. Adobe 系列的软件有哪些?各有什么用处?
  6. 【Halcon二维测量】——2D计量模型
  7. 一氧化碳/酒精/二氧化碳浓度检测/
  8. 激光雷达中国前装大幕开启,数百万颗产能待消化
  9. 【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
  10. 信息安全之数字信封原理