51 NOD 1406 and query

news/2024/7/4 19:45:28

    我们知道一个数S会对所有它的子集S'产生1的贡献,但是我们直接枚举子集是 3^(log2 1000000)的,会炸掉;如果直接把每个有1的位变成0往下推也会凉掉,因为这样会有很多重复的。

    但是我们发现 第二种方法其实算的是 有序的路径方案数, 我们尝试把它变成无序的,贡献就正好是1了。

    具体的说,我们在外层枚举位数,内层把所有这一位是1的数 给 把它这一位变成0的数 贡献,这样就是无序的了。

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1000000;
int n,f[maxn*2+5],ci[35];

inline int read(){
	int x=0; char ch=getchar();
	for(;!isdigit(ch);ch=getchar());
	for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
	return x;
}

void W(int a){ if(a>=10) W(a/10); putchar(a%10+'0');}  

inline void dp(){
	for(int i=0;i<20;i++)
	    for(int j=maxn;j;j--) if(j&ci[i]) f[j^ci[i]]+=f[j];
}

inline void output(){
	for(int i=0;i<=maxn;i++) W(f[i]),puts("");
}

int main(){
	ci[0]=1;
	for(int i=1;i<=20;i++) ci[i]=ci[i-1]<<1;
	n=read();
	for(int i=1;i<=n;i++) f[read()]++;
	dp();
	output();
	return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/8858668.html


http://www.niftyadmin.cn/n/3959854.html

相关文章

java对象的内存计算

我们讨论的是java heap中对象所占内存。 1.基本类型内存占用 类型占用字节数boolean1byte1char2short2int4float4long8double82.对象所占内存由以下部分组成 object header&#xff0c; 8 byte基本类型&#xff0c;见第1节的表格引用类型&#xff0c;都为4 bytepadding&#…

[JavaScript]多文件上传时动态添加及删除文件选择框

多文件上传时&#xff0c;首先要解决的一个问题就是动态去添加或删除文件选择框&#xff0c;原来以为没多么困难的&#xff0c;但是没想到IE居然不支持table.appendChild()的js代码&#xff0c;导致整个前台JS的实现时间比原计划大大增加。不过还好可以借助网络查找需要的资源&…

第四周疑难点

18-20题的编程和解读不清楚&#xff1f; https://blog.csdn.net/a1015553840/article/details/50979640 c编译器有点问题&#xff0c;搞好IDE再回来。 林老师的优秀博客资料&#xff1a; https://blog.csdn.net/red_stone1/article/category/6956972转载于:https://www.cnblogs…

Netty初步 --概念

1.入门文档 如果是入门的话&#xff0c;官网的文档已经相当好了。里面的例子程序得仔细阅读&#xff0c;这里就不再重复转载了。参见http://netty.io/wiki/user-guide.html 2.为什么需要netty 2.1 主要是scalibity和performance 2.2 另外Netty In Action有一些说明&#xff0c;…

Ubuntu腾讯云主机安装分布式memcache服务器,C#中连接云主机进行存储的示例

Ubuntu腾讯云主机安装分布式memcache服务器&#xff0c;C#中连接云主机进行存储的示例&#xff08;github代码&#xff1a;https://github.com/qq719862911/MemcacheTestDemo&#xff09; 1、腾讯云安装memcache服务器&#xff0c;并且启动服务器。 1)安装Memcache服务端 sudo …

Practical Netty (3) 在Netty中使用Protobuf

Practical Netty (3) 在Netty中使用Protobuf 作者&#xff1a;柳大Poechant&#xff08;钟超&#xff09;邮箱&#xff1a;zhongchao.ustc#gmail.com&#xff08;# -> &#xff09;博客&#xff1a;Blog.CSDN.net/Poechant 微博&#xff1a;weibo.com/lauginhom 日期&#x…

Atom改国内源

linux #进入目录 cd /home/你的用户名/.atom#创建文件并编辑 vim .apmrc#添加国内源 registryhttps://registry.npm.taobao.org#保存退出#测试是否成功 apm install --check windows #进入目录 找到C:\Users\用户名\.atom目录#创建名为 .apmrc 的文件并编辑#添加国内源 registr…

几种JAVA加密算法

1. MD5加密&#xff0c;常用于加密用户名密码&#xff0c;当用户验证时。   protected byte[] encrypt(byte[] obj) ...{   try ...{   MessageDigest md5 MessageDigest.getInstance("MD5");   md5.update(obj);   return md5.digest();   } catch (No…