https://www.cnblogs.com/AwD-/p/6600650.html

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<cstdlib>
  5. #include<cstring>
  6. #include<algorithm>
  7. using namespace std;
  8. #define ll long long
  9. #define P 1000000007
  10. #define N 1024
  11. char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
  12. int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
  13. int read()
  14. {
  15. int x=0,f=1;char c=getchar();
  16. while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
  17. while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
  18. return x*f;
  19. }
  20. int n,a[N],f[2][N][N];
  21. void inc(int &x,int y){x+=y;if (x>=P) x-=P;}
  22. int main()
  23. {
  24. #ifndef ONLINE_JUDGE
  25. freopen("a.in","r",stdin);
  26. freopen("a.out","w",stdout);
  27. const char LL[]="%I64d\n";
  28. #else
  29. const char LL[]="%lld\n";
  30. #endif
  31. n=read();
  32. for (int i=1;i<=n;i++) a[i]=read();
  33. f[0][1023][1023]=1;
  34. for (int i=0;i<n;i++)
  35. {
  36. for (int j=0;j<N;j++)
  37. for (int k=N-1^j;k>=0;k=k==0?-1:(k-1&(N-1^j)))
  38. f[i&1^1][j][k|j]=f[i&1][j][k|j];
  39. for (int j=0;j<N;j++)
  40. for (int k=N-1^j;k>=0;k=k==0?-1:(k-1&(N-1^j)))
  41. inc(f[i&1^1][j&a[i+1]][(k|j)&a[i+1]],f[i&1][j][k|j]),
  42. inc(f[i&1^1][j&a[i+1]][((k|j)&a[i+1])|j],P-f[i&1][j][k|j]);
  43. }
  44. cout<<f[n&1][0][0]<<endl;
  45. return 0;
  46. }

  

BZOJ4762 最小集合(动态规划+容斥原理)的更多相关文章

  1. 1616 最小集合 51NOD(辗转相处求最大公约数+STL)

    1616 最小集合 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 A君有一个集合. 这个集合有个神奇的性质. 若X,Y属于该集合,那么X与Y的最大 ...

  2. UVA 11825 Hackers’ Crackdown(集合动态规划 子集枚举)

    Hackers’ Crackdown Miracle Corporations has a number of system services running in a distributed com ...

  3. bzoj 2839 : 集合计数 容斥原理

    因为要在n个里面选k个,所以我们先枚举选的是哪$k$个,方案数为$C_{n}^k$ 确定选哪k个之后就需要算出集合交集正为好这$k$个的方案数,考虑用容斥原理. 我们还剩下$n-k$个元素,交集至少为 ...

  4. 【BZOJ1471】不相交路径 题解(拓扑排序+动态规划+容斥原理)

    题目描述 在有向无环图上给你两个起点和终点分别为$a,b,c,d$.问有几种路径方案使得能从$a$走到$b$的同时能从$c$走到$d$,且两个路径没有交点. $1\leq n\leq 200,1\le ...

  5. 【51Nod 1616】【算法马拉松 19B】最小集合

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. ...

  6. 【BZOJ-2839】集合计数 容斥原理 + 线性推逆元 + 排列组合

    2839: 集合计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 229  Solved: 120[Submit][Status][Discuss] ...

  7. 最小集合(51nod 1616)

    A君有一个集合. 这个集合有个神奇的性质. 若X,Y属于该集合,那么X与Y的最大公因数也属于该集合. 但是他忘了这个集合中原先有哪些数字. 不过幸运的是,他记起了其中n个数字. 当然,或许会因为过度紧 ...

  8. 九度OJ 1086 最小花费--动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1086 题目描述: 在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对 ...

  9. BZOJ 2839: 集合计数 [容斥原理 组合]

    2839: 集合计数 题意:n个元素的集合,选出若干子集使得交集大小为k,求方案数 先选出k个\(\binom{n}{k}\),剩下选出一些集合交集为空集 考虑容斥 \[ 交集为\emptyset = ...

随机推荐

  1. JavaScript(转载自 计科学院 慕课网)

    什么是脚本语言? ①脚本语言介于HTML和C,C++,Java,C#等编程语言之间 ②脚本语言与编程语言有相似地方,其函数与编程语言类似,也有变量.与编程语言之间最大的区别是编程语言的语法和规则更为严 ...

  2. linux学习笔记-linux主机上传下载文件至linux虚拟机的方法

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.上传文件 scp -r file 用户名@ip地址:目标目录 2.下载文件 scp -r 用户名@ip地址:文件 目标目录

  3. DVWA 黑客攻防演练(二)暴力破解 Brute Froce

    暴力破解,简称"爆破".不要以为没人会对一些小站爆破.实现上我以前用 wordpress 搭建一个博客开始就有人对我的站点进行爆破.这是装了 WordfenceWAF 插件后的统计 ...

  4. mysql 将一个表中的数据复制到另一个表中,sql语句

    1.表结构相同的表,且在同一数据库(如,table1,table2) Sql :insert into table1 select * from table2 (完全复制) insert into t ...

  5. Linux(Centos7)下搭建SVN服务器 (转载)

    系统环境:centos7.2 第一步:通过yum命令安装svnserve,命令如下: yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停 ...

  6. Python爬虫之正则表达式(3)

    # re.sub # 替换字符串中每一个匹配的子串后返回替换后的字符串 import re content = 'Extra strings Hello 1234567 World_This is a ...

  7. Bootstrap -- 文本,背景,其他样式

    Bootstrap -- 文本,背景,其他样式 1. 文本样式:展示了不同的文本颜色 使用文本样式: <!DOCTYPE html> <html> <head> & ...

  8. 记录基于VMware虚拟机, Linux7.2下外部主机访问配置

    systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动

  9. 如何使用U盘安装macOS high Sierra?

    当你不再只是想升级系统的时候,而是想把系统重装,你可能就会用到如标题所说的方式:使用U盘安装mac系统.所以我们需要做以下几件事情,就可以顺利地重装mac系统: 第一步.在App Store下载最新的 ...

  10. window.loaction.href 不自动跳转的问题

    window.location.href无效/不跳转的原因分析   1.源代码: <a href="javascript:void(0);" onclick="mo ...