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 ...
最新文章
- 一篇文章讲懂Vmware网卡配置,解决常见问题
- 代数学笔记10.1: 关于对称多项式的理解和三次预解式的推导
- 使用遇到的问题_水性漆在使用过程中遇到的问题以及解决方案
- 2021年黑龙江高考成绩查询,黑龙江省招生考试信息港:2021年黑龙江高考成绩查询入口、查分系统...
- 12.present perfect(2)
- c语言动态指针数组--一种伪二维数组
- Linux环境下gcc静态编译/usr/bin/ld: cannot find -lc错误原因及解决方法。
- mos管闩锁效应理解学习
- C++类的构造函数及操作符()重载
- c51倒计时程序汇编语言,两位倒计时器程序(单片机—汇编语言).doc
- 深度学习word2vec笔记之基础篇
- LiteOS通信模组教程04-深度剖析LiteOS的AT框架
- J-link无法下载固件问题
- 概率论与数理统计(2.1-2.2)随机变量和离散型分布
- Java 8 将Map转换为List
- chrome hosts文件管理工具 空白问题的解决
- 关灯游戏c语言,关灯游戏 Lights out (一)(极速求解)
- Java-AOP(Hook)实现机制(JDK/cglib动态代理/ASM/Javassist/AspectJ)
- ubuntu java卸载_ubuntu如何完全卸载Java
- 如何用PS制作花型背景图
热门文章
- (二)FreeMarker模板开发
- echars饼状图的formatter
- Android studio 更换app launcher图标后还是显示之前的小人图标
- Intellj idea新建的java源文件夹不是蓝色,怎么解决让它成为蓝色源文件
- Adobe 系列的软件有哪些?各有什么用处?
- 【Halcon二维测量】——2D计量模型
- 一氧化碳/酒精/二氧化碳浓度检测/
- 激光雷达中国前装大幕开启,数百万颗产能待消化
- 【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
- 信息安全之数字信封原理