码迷,mamicode.com
首页 > 其他好文 > 详细

快速I/O 51node 1406

时间:2016-11-03 01:55:37      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:sizeof   const   ret   pre   ptr   size   long   write   span   

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4 typedef pair<int,int> pii;
 5 const int inf = 0x3f3f3f3f;
 6 const int N =1e6+10;
 7 const int MOD = 1e9+7;
 8 #define clc(a,b) memset(a,b,sizeof(a))
 9 const double eps = 1e-8;
10 void fre() {freopen("in.txt","r",stdin);}
11 void freout() {freopen("out.txt","w",stdout);}
12 const int R=10000000,P=1000000007;
13 char buf[R+7],*ptr=buf-1,wb[R+7],*wp=wb;
14 int read(){
15     int x=0,c=*++ptr;
16     while(c<48)c=*++ptr;
17     while(c>47)x=x*10+c-48,c=*++ptr;
18     return x;
19 }
20 void print(int x){
21     int stk[13],stp=0;
22     if(!x)*(wp++)=48;
23     while(x)stk[stp++]=x%10+48,x/=10;
24     while(stp)*(wp++)=stk[--stp];
25     *(wp++)=10;
26 }
27 int cnt[N];
28 int main(){
29     int n;
30     fread(buf,1,R,stdin);
31     n=read();
32     int mx=-inf;
33     for(int i=1;i<=n;i++){
34         int x;
35         x=read();
36         cnt[x]++;
37         mx=max(mx,x);
38     }
39     mx=min(1000001,mx);
40     for(int j=20;j>=0;j--){
41         for(int i=1;i<=mx;i++){
42             if(i&(1<<j)){
43                 cnt[i-(1<<j)]+=cnt[i];
44             }
45         }
46     }
47    for(int i=0;i<=1000000;++i)print(cnt[i]);
48     fwrite(wb,1,wp-wb,stdout);
49     return 0;
50 }

 

快速I/O 51node 1406

标签:sizeof   const   ret   pre   ptr   size   long   write   span   

原文地址:http://www.cnblogs.com/ITUPC/p/6024948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!