【CTSC2017】【BZOJ4903】吉夫特 卢卡斯定理 DP
题目描述
给你一个长度为\(n\)的数列\(a\),求有多少个长度\(\geq 2\)的不上升子序列\(a_{b_1},a_{b_2},\ldots,a_{b_k}\)满足
\]
答案对\({10}^9+7\)取模。
\(n\leq211985,a_i\leq 233333\)
\(\forall i\neq j,a_i\neq a_j\)
题解
水题。
先忽略长度\(\geq 2\)这个条件。
根据卢卡斯定理,有\(a_{b_i}|a_{b_{i-1}}\)。
从前往后DP。
设\(f_i\)为前面那部分,最后一个数是\(i\)的方案数。
转移直接枚举\(a_i|j\),让\(f_{a_i}+=f_j\)。
时间复杂度:枚举子集的复杂度,\(O(3^{\log \max_{i=1}^na_i})\)
p.s. gift在德语中的意思是毒。
代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int p=1000000007;
int f[1000010];
int main()
{
int n;
scanf("%d",&n);
int i,x,j;
int ans=0;
for(i=1;i<=n;i++)
{
scanf("%d",&x);
f[x]=1;
for(j=(x+1)|x;j<=233333;j=(j+1)|x)
f[x]=(f[x]+f[j])%p;
ans=(ans+f[x])%p;
}
ans=(ans-n+p)%p;
printf("%d\n",ans);
return 0;
}
【CTSC2017】【BZOJ4903】吉夫特 卢卡斯定理 DP的更多相关文章
- [CTSC2017][bzoj4903] 吉夫特 [状压dp+Lucas定理]
题面 传送门 思路 一句话题意: 给出一个长度为 n 的序列,求所有长度大于等于2的子序列个数,满足:对于子序列中任意两个相邻的数 a和 b (b 在 a 前面),$C_a^b mod 2=1$,答案 ...
- [CTSC2017]吉夫特(Lucas定理,DP)
送70分,预处理组合数是否为偶数即可. 剩下的数据,根据Lucas定理的推论可得当且仅当n&m=n的时候,C(n,m)为奇数.这样就可以直接DP了,对于每个数,考虑它对后面的数的影响即可,直接 ...
- 洛谷P3773 [CTSC2017]吉夫特(Lucas定理,dp)
题意 满足$b_1 < b_2 < \dots < b_k$且$a_{b_1} \geqslant a_{b_2} \geqslant \dots \geqslant a_{b_k} ...
- 【BZOJ4903】【UOJ#300】吉夫特(卢卡斯定理,动态规划)
[BZOJ4903][UOJ#300]吉夫特(卢卡斯定理,动态规划) 题面 UOJ BZOJ:给的UOJ的链接...... 题解 首先模的质数更小了,直接给定了\(2\).当然是卢卡斯定理了啊. 考虑 ...
- 【XSY2691】中关村 卢卡斯定理 数位DP
题目描述 在一个\(k\)维空间中,每个整点被黑白染色.对于一个坐标为\((x_1,x_2,\ldots,x_k)\)的点,他的颜色我们通过如下方式计算: 如果存在一维坐标是\(0\),则颜色是黑色. ...
- BZOJ4737 组合数问题(卢卡斯定理+数位dp)
不妨不管j<=i的限制.由卢卡斯定理,C(i,j) mod k=0相当于k进制下存在某位上j大于i.容易想到数位dp,即设f[x][0/1][0/1][0/1]为到第x位时是否有某位上j> ...
- BZOJ4591 SHOI2015超能粒子炮·改(卢卡斯定理+数位dp)
注意到模数很小,容易想到使用卢卡斯定理,即变成一个2333进制数各位组合数的乘积.对于k的限制容易想到数位dp.可以预处理一发2333以内的组合数及组合数前缀和,然后设f[i][0/1]为前i位是否卡 ...
- bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp
LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=10000 ...
- 【UOJ#275】组合数问题(卢卡斯定理,动态规划)
[UOJ#275]组合数问题(卢卡斯定理,动态规划) 题面 UOJ 题解 数据范围很大,并且涉及的是求值,没法用矩阵乘法考虑. 发现\(k\)的限制是,\(k\)是一个质数,那么在大组合数模小质数的情 ...
随机推荐
- 二、xadmin----简单使用
1.中文设置: settings.py中直接配置: LANGUAGE_CODE = "zh-hans" TIME_ZONG = "Asia/Shanghai" ...
- element ui主题色跟换
node_modules\ element ui\ lib\ theme-dafault 下载的主题色替换掉改文件... ================== 但是会出现 搜索框iocon 样式换 ...
- Python学习第二篇
list_num=list(range(1,1000001)) print(min(list_num)) print(max(list_num)) print(sum(list_num)) print ...
- StanfordPOSTagger的用法
或者: 然后, 由说明文档可知,nltk.tag.stanford module是与斯坦福标识符交互的模块.要到https://nlp.stanford.edu/software下载Tagger mo ...
- semantic-ui 容器与栅格
semantic中可以指定one-sixteen这16个单词来指定网格column所占的长度.也就是说,在网页中,一行最多只有16个column,超过16个之后,自动移到下一行. 栅格可以使用i,di ...
- C#设计模式之6:抽象工厂模式
前面分析了简单工厂模式和工厂方法模式,接着来看一下抽象工厂模式,他与工厂方法模式有一些相似的地方,也有不同的地方. 先来看一个不用工厂方法模式实现的订购披萨的代码: 对象依赖的问题:当你直接实例化一个 ...
- [转帖]Windows和Linux对决(多进程多线程)
Windows和Linux对决(多进程多线程) https://blog.csdn.net/world_2015/article/details/44920467 太长了 还没看完.. 还是没太理解好 ...
- [转帖]Windows 10新预览版上线:可直接运行任意安卓APP了
Windows 10新预览版上线:可直接运行任意安卓APP了 http://www.pcbeta.com/viewnews-80316-1.html 今晨(3月13日),微软面向Fast Ring(快 ...
- [转帖]Vim 编辑器底端 [noeol], [dos] 的含义
Vim 编辑器底端 [noeol], [dos] 的含义 2012年11月28日 23:13:04 strongwangjiawei 阅读数:15484 https://blog.csdn.net/s ...
- Mysql DBA 运维 MySQL数据库索引优化及数据丢失案例 MySQL备份-增量备份及数据恢复基础实战 MySQL数据库生产场景核心优化
需要的联系我,QQ:1844912514