51nod 1406 与查询
来源:互联网 发布:c语言的应用范围 编辑:程序博客网 时间:2024/05/01 22:24
很巧妙的DP转移方式。
#include<bits/stdc++.h>using namespace std;const int MAXN=1e6+1;int sum[MAXN];void read(int&a){ char ch;while(!((ch=getchar())>='0')&&(ch<='9')); a=ch-'0';while(((ch=getchar())>='0')&&(ch<='9'))a*=10,a+=ch-'0';}inline void prin_d(int x){ if (x > 9) { prin_d(x / 10); } putchar(x % 10 + '0'); return ;}int main(){int n,i,j,mx,tmp,mxdig,x;while(~scanf("%d",&n)){mx=0;memset(sum,0,sizeof(sum));for(i=0;i<n;i++){read(x);mx=max(mx,x);sum[x]++;}tmp=mx;mxdig=0;while(tmp){mxdig++;tmp>>=1;} for(j=mxdig;j>=0;j--){for(i=1;i<=mx;i++){if((i>>j)&1)sum[i-(1<<j)]+=sum[i];}}sum[0]=n;for(i=0;i<MAXN;i++){prin_d(sum[i]);puts("");}}}
0 0
- 51Nod-1406-与查询
- 51nod-1406 与查询
- 51nod 1406 与查询
- 51nod 1406 与查询
- 51nod 1406 与查询 二进制+暴力
- 51 nod 1406 与查询(思维)
- 51nod 1406 与查询 类背包dp
- 51NOD 1210 矩阵查询
- 51nod 1407 与与与与
- 51nod 圆与三角形
- 51Nod - 1406 dp
- 51NOD 1210 矩阵查询 【线段树/树状数组】
- 51nod 1298 圆与三角形
- 51nod 1293:球与切换器
- 51Nod 1298 圆与三角形
- [51nod]1298 圆与三角形
- 51nod 1298 圆与三角形
- 51nod 1298 圆与三角形
- Tribon的网络版(TriWeb)上线啦
- 测试一下
- 轻松理解CRC差错检测算法(A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS)一
- dijstra 模板
- java泛型
- 51nod 1406 与查询
- Currying
- leetcode12&13
- cmake+opencv+vs2013
- 判断两条线段是否相交 计算几何
- 利用Fiddler抓取手机数据包
- 下载网站上的视频的方法
- ncurese.h
- hdu 1203 I NEED A OFFER!(01背包)