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. python比较excel表格内容并提取_python 实现excel数据的提取和整理
  2. golang操作文件
  3. 首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享
  4. 中断处理及系统调用的处理过程
  5. nz-input-group is not a known element的解决方法
  6. 在项目中缓存是如何使用的?
  7. 第11篇:Flowable-BPMN部署常见问题没有对ACT_RE_PROCDEF表进行插入操作
  8. php mysql表单验证登录_使用PHP和MySql简单身份验证 1
  9. c#制作发行版 vs_vs2019制作多项目工程模板 - Jackie Hao
  10. Mac下docker安装kali/ubuntu14.04
  11. c语言程序设计身高体重测评系统,C语言程序设计验.doc
  12. 创新创业技术路线怎么写_2016如何撰写创新创业项目申请书.ppt
  13. Ad hoc queries(即席查询)
  14. Android P 禁用OTG U盘使用
  15. 微软Azure动手实验营4月课程预告
  16. ios状态栏,导航栏,工具栏,tab栏的位置,附图
  17. 三万字、91道MySQL面试题(收藏版)
  18. GA遗传算法及相关代码
  19. 抖音小店另类起店方法
  20. 昼短苦夜长,何不秉烛游

热门文章

  1. 纯手码 | 基于OpenCV的车牌识别(Sobel、颜色定位),绝对实用
  2. HTML5+CSS3学习笔记3
  3. 程序员不得不去的10个网站
  4. Excel催化剂开源第13波-VSTO开发之DataGridView控件几个小坑
  5. 苹果微信推送服务器错误,接入WxPusher微信推送服务出现错误:Content type application/x...
  6. MM--公司委托加工流程
  7. 【蓝桥杯】历届真题 杨辉三角形 (省赛)Java
  8. 爬取QQ音乐2W歌单和50W首歌曲
  9. c++数组求和函数 accumulate()
  10. c语言封面图片,c语言黑白简历封面