【题解】与查询 [51nod1406]

传送门:与查询 \([51nod1406]\)

【题目描述】

给出 \(n\) 个整数,对于 \(x \in [0,1000000]\),分别求出在这 \(n\) 个整数当中同 \(x\) 求与之后结果为 \(x\) 的有多少个。

【样例】

样例输入:
3
2 3 3 样例输出:
3
2
3
2
0
0
...
...
...
0
(一共1000001个数,后面一共999997个0)

【数据范围】

\(100\%\) \(1 \leqslant N \leqslant 10^6,\) \(1 \leqslant a[i] \leqslant 10^6\)

【分析】

用 \(dp[i]\) 表示与 \(i\) 求与等于 \(i\) 的数的个数。

首先,一个数同它自己求与还是等于它自己,所以对于,\(dp[i]\) 的初始值就是给出的序列中 \(i\) 出现的次数。

对于某一个二进制数 \(a\),将其任意一个为 \(0\) 的位变为 \(1\) ,得到二进制数 \(b\)。

可知:

同 \(a\) 求与等于 \(a\) 的数同 \(b\) 求与不一定等于 \(b\),

同 \(b\) 求与等于 \(b\) 的数同 \(a\) 求与一定等于 \(a\)。

即 \(b\) 的方案一定可以满足 \(a\) 的需求。

所以 \(dp\) 方程为:\(dp[j]+=dp[j \oplus (1<<i)]\),其中 \(j \in [0,10^6],\) \(j\) \(\And (1<<i)==0\) 且 \(j \oplus (1<<i) \leqslant 10^6\)

由于数据输出过多,需要自己写快输,否则会全 \(TLE\) 。

时间复杂度为 \(O(MlogM)\),其中 \(M=10^6\) 。

【Code】

#include<algorithm>
#include<cstdio>
#define Re register int
const int N=1e6;
int n,a,dp[N+3];
inline void in(Re &x){
int f=0;x=0;char c=getchar();
while(c<'0'||c>'9')f|=c=='-',c=getchar();
while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();
x=f?-x:x;
}
inline void out(int x){
if(x>9)out(x/10);
putchar(x%10+'0');
}
int main(){
in(n);
for(Re i=1;i<=n;i++)in(a),++dp[a];
for(Re i=0;i<20;i++)
for(Re j=0;j<=N;++j)
if(!(j&(1<<i))&&(j^(1<<i))<=N)dp[j]+=dp[j^(1<<i)];
for(Re j=0;j<=N;++j)out(dp[j]),puts("");
}

【题解】与查询 [51nod1406]的更多相关文章

  1. MySQL之单表查询练习

    一.emp表 二.练习 1. 查询出部门编号为30的所有员工2. 所有销售员的姓名.编号和部门编号.3. 找出奖金高于工资的员工.4. 找出奖金高于工资60%的员工.5. 找出部门编号为10中所有经理 ...

  2. 【BZOJ】3309: DZY Loves Math

    题意 \(T(T \le 10000)\)次询问,每次给出\(a, b(1 \le a, b \le 10^7)\),求 \[\sum_{i=1}^{a} \sum_{j=1}^{b} f((i, j ...

  3. 【洛谷P3792】由乃与大母神原型和偶像崇拜

    题目大意:维护一个序列,支持单点修改和查询一段区间能不能组成连续的一段数. 题解:查询区间能不能组成一段连续的数这个操作较为复杂,很难在较小时间复杂度内直接维护.这里采用线段树维护区间哈希的策略,即: ...

  4. codeforces 1000F One Occurrence(线段树、想法)

    codeforces 1000F One Occurrence 题意 多次询问lr之间只出现过一次的数是多少. 题解 将查询按照左端点排序,对于所有值维护它在当前位置后面第二次出现是什么时候,那么查询 ...

  5. Croc Champ 2013 - Round 1 E. Copying Data 线段树

    题目链接: http://codeforces.com/problemset/problem/292/E E. Copying Data time limit per test2 secondsmem ...

  6. POJ2104 K-th Number —— 区间第k小 整体二分

    题目链接:https://vjudge.net/problem/POJ-2104 K-th Number Time Limit: 20000MS   Memory Limit: 65536K Tota ...

  7. [Leetcode]Sql系列3

    题目1 产品数据表: Products +---------------+---------+ | Column Name | Type | +---------------+---------+ | ...

  8. 51nod1406 与查询

    这题卡I/O...dp一下... #include<cstdio> #include<cstring> #include<cctype> #include<a ...

  9. 树套树专题——bzoj 3110: [Zjoi2013] K大数查询 &amp; 3236 [Ahoi2013] 作业 题解

    [原题1] 3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 978  Solved: 476 Descri ...

随机推荐

  1. error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

    出现如下错误: error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 解决办法:

  2. 结对编程(Python实现)

    一.Github地址:https://github.com/nullcjm/mypage 项目搭档:3117004662梁子豪 3117004648陈俊铭 二.PSP表格: PSP2.1 Person ...

  3. SSISWMI-Watching for the Wql query caused the following system exception: "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"

    将带有WMI  WATCH  TASK的SSIS包排到sql server  agent跑,报异常,这是运行账号权限的问题. Executed as user: sss. Microsoft (R) ...

  4. linux 利器

    ncat nc strace dmesg    很重要,好多错误从程序的角度无法得到答案

  5. The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool

    题目链接:https://nanti.jisuanke.com/t/41406 思路:如果k的天数足够大,那么所有水池一定会趋于两种情况: ① 所有水池都是一样的水位,即平均水位 ② 最高水位的水池和 ...

  6. Leetcode——2. 两数相加

    难度: 中等 题目 You are given two non-empty linked lists representing two non-negative integers. The digit ...

  7. linux 挂载磁盘LVM

    最近又有个坑逼任务: 在客户给的三台虚拟机上在安装集群环境,,虚拟机没挂载磁盘 要配置成LV卷:大致理解逻辑之后理解为:LV卷后续方便做扩容 理论参考:https://www.cnblogs.com/ ...

  8. [PHP] Layui + jquery 实现 实用的文章自定义标签

    先看实现效果: html 代码如下: <!doctype html> <html> <head> <meta charset="utf-8" ...

  9. 【JZOJ100208】【20190705】传说之下

    题目 三维空间上有一个点,进行了\(n\)次移动 第\(i\)次为在\([0,L_i]\)内随机一个长度\(l_i\),向\(\vec P_i\)方向移动\(l_i\) $\vec P_i $ 表示为 ...

  10. nuxtjs如何部署cdn及区分发布环境

    1.部署cdn nuxt  build 后的前端资源都会存放在.nuxt/dist/ 文件夹下面 img 目录存放的是使用到的图片资源,无论是开发中存放在 assets 文件夹里的,还是static里 ...