P3773 CTSC2017 吉夫特
P3773 CTSC2017 吉夫特 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这个题面非常诈骗,应该是出题者故意的。
题目中那么老长串式子,其实就等价于这个长度为 \(m\) 的子序列需要满足:
这个子序列中,对于每一对相邻的前后项(总共 \(m - 1\) 对),设前项是 \(a\),后项是 \(b\),都有:
至于不上升的限制,那是假的:如果中途上升,也就是存在 \(a < b\),显然会有 \(\dbinom{a}{b} = 0\),已经不满足题目的制约了。
我们考虑使用 Lucas。有:
发现后面的组合数只有四种,分别是 \(\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{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 吉夫特相关推荐
- 洛谷P3773 [CTSC2017]吉夫特(Lucas定理,dp)
题意 满足$b_1 < b_2 < \dots < b_k$且$a_{b_1} \geqslant a_{b_2} \geqslant \dots \geqslant a_{b_k} ...
- [CTSC2017]吉夫特
[Luogu3773] [LOJ2264] [UOJ300] 题解 \(x!的2因子数f(x)=\sum_{i=1}^{ \infty} \frac{x}{2^i}\) 我们设\(g(x)=x,\)那 ...
- loj 300 [CTSC2017]吉夫特 【Lucas定理 + 子集dp】
题目链接 loj300 题解 orz litble 膜完题解后,突然有一个简单的想法: 考虑到\(2\)是质数,考虑Lucas定理: \[{n \choose m} = \prod_{i = 1} { ...
- [CTSC2017]吉夫特(思维+巧妙)
description 戳我看题目 solution 显然只要选出来的子序列有一个组合数为偶数,最后取模 222 的结果都会是零 有一个结论:当且仅当n&m=m时,CnmC_n^mCnm为奇 ...
- [CTSC2017]吉夫特(Lucas定理,DP)
送70分,预处理组合数是否为偶数即可. 剩下的数据,根据Lucas定理的推论可得当且仅当n&m=n的时候,C(n,m)为奇数. 这样就可以直接DP了,对于每个数,考虑它对后面的数的影响即可,直 ...
- 2018十二月刷题列表
Preface \(2018\)年的尾巴,不禁感慨自己这一年的蜕变只能用蜕变来形容了. 而且老叶说我们今年没的参加清北冬令营可以参加CCF在广州二中举办的冬令营,只要联赛\(390+\)就应该可以报. ...
- 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 ...
- #300. 【CTSC2017】吉夫特
明明已经广为流传,bzojbzoj就是不贴题面 uojuoj题面传送门吉夫特 考虑Cmn mod 2≡1C_n^m\ mod\ 2\equiv 1的成立条件 根据LucasLucas定理,有Cmn m ...
- 【CTSC2017】【BZOJ4903】吉夫特 卢卡斯定理 DP
题目描述 给你一个长度为\(n\)的数列\(a\),求有多少个长度\(\geq 2\)的不上升子序列\(a_{b_1},a_{b_2},\ldots,a_{b_k}\)满足 \[ \prod_{i=2 ...
最新文章
- python比较excel表格内容并提取_python 实现excel数据的提取和整理
- golang操作文件
- 首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享
- 中断处理及系统调用的处理过程
- nz-input-group is not a known element的解决方法
- 在项目中缓存是如何使用的?
- 第11篇:Flowable-BPMN部署常见问题没有对ACT_RE_PROCDEF表进行插入操作
- php mysql表单验证登录_使用PHP和MySql简单身份验证 1
- c#制作发行版 vs_vs2019制作多项目工程模板 - Jackie Hao
- Mac下docker安装kali/ubuntu14.04
- c语言程序设计身高体重测评系统,C语言程序设计验.doc
- 创新创业技术路线怎么写_2016如何撰写创新创业项目申请书.ppt
- Ad hoc queries(即席查询)
- Android P 禁用OTG U盘使用
- 微软Azure动手实验营4月课程预告
- ios状态栏,导航栏,工具栏,tab栏的位置,附图
- 三万字、91道MySQL面试题(收藏版)
- GA遗传算法及相关代码
- 抖音小店另类起店方法
- 昼短苦夜长,何不秉烛游
热门文章
- 纯手码 | 基于OpenCV的车牌识别(Sobel、颜色定位),绝对实用
- HTML5+CSS3学习笔记3
- 程序员不得不去的10个网站
- Excel催化剂开源第13波-VSTO开发之DataGridView控件几个小坑
- 苹果微信推送服务器错误,接入WxPusher微信推送服务出现错误:Content type application/x...
- MM--公司委托加工流程
- 【蓝桥杯】历届真题 杨辉三角形 (省赛)Java
- 爬取QQ音乐2W歌单和50W首歌曲
- c++数组求和函数 accumulate()
- c语言封面图片,c语言黑白简历封面