传送门

Solution

输入一个长度为n的数列,求有多少个长度大等于2的不上升子序列满足:

\[\prod_{i=2}^{k} C(a_{b_{i-1}},a_{b_i}) mod\ 2 >0 \]

答案对1e9+7取模

根据Lucas定理:

\[C\ (n,\ m)\ ≡\ C\ (\frac{n}{p},\frac{m}{p})*\ C\ (n\%p,\ m\%p)\ (mod\ p)\]

可以发现,只要满足m是n的子集,或者说是(n&m)=m即可。

f[i]表示从\(a_i\)开始的序列的数量,转移时枚举 \(a_i\)的子集,要判断一下它出现的位置是否在i之后

因为我们的\(a_i\)时互不相同的,所以,复杂度大概是\(O(3^{\log \max a_i})\)

写博客的真实原因其实是,pac弱到连枚举子集都不会

#include<bits/stdc++.h>
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define swap(x,y) (x^=y^=x^=y)
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return x*f;
}
#define MN 211990
#define MM 233335
#define mod 1000000007
int a[MN],pos[MM],f[MN];
int n,ans;
inline void add(int &x,int y){x+=y;x>=mod?x-=mod:0;}
int main()
{n=read();register int i,j;for(i=1;i<=n;++i) a[i]=read(),pos[a[i]]=i;for(i=n;i;--i){f[i]=1;for(j=a[i]&(a[i]-1);j;j=a[i]&(j-1))if(pos[j]>i) add(f[i],f[pos[j]]);add(ans,f[i]);}add(ans,mod-n);printf("%d\n",ans);return 0;
}

所以呢,如何枚举子集?

for(i=S;i&=S;--i)

Blog来自PaperCloud,未经允许,请勿转载,TKS!

转载于:https://www.cnblogs.com/PaperCloud/p/10018111.html

[luogu 3773][CTSC 2017]吉夫特相关推荐

  1. luogu 1327 数列排序 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J题 循环节

    luogu 1327 数列排序 题意 给定一个数列\(\{an\}\),这个数列满足\(ai≠aj(i≠j)\),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? ...

  2. luogu P3750 [六省联考 2017]分手是祝愿

    https://www.luogu.com.cn/problem/P3750 k=nk=nk=n给了808080分可还行 首先考虑k=nk=nk=n,不难想到一个贪心,从大到小枚举每个开关,如果为11 ...

  3. 【luogu P4005 清华集训2017】小Y和地铁

    题目描述 小 Y 是一个爱好旅行的 OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有 换乘站 . ...

  4. BZOJ 4872 luogu P3750 [六省联考2017]分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MB [Submit][Status][Discuss] Description ...

  5. 【Luogu】【关卡2-2】交叉模拟(2017年10月)

    任务说明:这里也是模拟,但是会混有些别的部分.思维难度不大,但是编写起来会有些难度. 转载于:https://www.cnblogs.com/zhangwanying/p/7634644.html

  6. 【深搜】 棋盘 【NOIp普及组 2017 第三题】 (luogu 3956/ssl 2851)

    棋盘棋盘棋盘 题目大意: 有一个M*M的棋盘,要从(1,1)到(m,m),中间有n个有颜色的格子,只能踩在有颜色的格子上,跳到不同颜色的格子要花费1元,可以将前方没颜色的格子变成自己要的格子,但要花费 ...

  7. [Luogu P3960] [UOJ 334] [NOIP 2017 tg]列队

    洛谷传送门 UOJ传送门 题目描述 Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n×mn \time ...

  8. 2017.3.18 每日小记

    最近状态实在太差了...可以和一年前的自己相比了 .┑( ̄Д  ̄)┍ 今天测试真的不难. .可我轻松将第一题读错..而且钻了两个没用的性质........简直丧病. 第二题看出dp+容斥 快出正解了, ...

  9. [洛谷]CON1466 洛谷2017春节联欢赛 Hello Dingyou题解 Bzoj4763雪辉

    题目来源:https://www.luogu.org/contest/show?tid=1466 创建时间:2017/3/13 18:33 镇楼图:       猜猜她是谁~ 解题思路: 春节居然也有 ...

最新文章

  1. GitHub五万星登顶,程序员命令行最全技巧宝典!
  2. 桌面支持--电脑出现临时账户--解决办法
  3. ORACLE 调试输出,字符串执行函数
  4. python端口扫描工具_Python实现的多线程端口扫描工具分享
  5. 信息学奥赛一本通 1130:找第一个只出现一次的字符 | OpenJudge NOI 1.7 02
  6. centos7不中断执行命令
  7. realme真我GT2系列节后登场:出厂自带realme UI 3.0正式版
  8. python server client_python 实现简单client与server | 学步园
  9. mysql视图什么时候用_Mysql为什么要使用视图?
  10. mysql repair 索引_MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)...
  11. camera link心得
  12. 凝思6.0.60操作系统编译安装sqliteman(版本1.2.2)
  13. 通信方式的分类(串行通信和并行通信)
  14. HTML视频自动播放
  15. Python 批处理文件(全)
  16. java.lang.IllegalArgumentException: Not an managed type
  17. Ubuntu 自带截图工具快捷键盘
  18. 语义分割介绍和FCN
  19. 多商户商城系统功能拆解24讲-平台端分销会员
  20. 带参数传递的Verilog模块设计

热门文章

  1. 刚刚,“达摩院2020十大科技趋势”正式发布!
  2. SAP RETAIL 为门店代码维护Plant Group
  3. 盘点:2020年最酷的12家机器学习初创公司
  4. AI 行业寒冬犹在:融资规模不足巅峰时期一半,上市潮将伴随倒闭潮
  5. 谷歌推出新模型「pQRNN」,少量参数下进行文本分类,性能堪比BERT
  6. 产品经理在创造AI,到底在创造什么
  7. 海康威视 AI Cloud 软硬件平台
  8. 马斯克说,特斯拉最新自动驾驶芯片性能是英伟达的7倍​
  9. 机器学习的12大经验总结
  10. P3项目全球模板狗血设置之二 --- 移动类型523收货不能自动创建批次号