九度 1402 特殊的数
bitset<100> bs 100表示bs有100位
bs.count() 表示二进制位为1的个数
bs.set() 把所有二进制位都置为1
bs.reset() 把所有二进制位都置为0
#include<iostream> #include<bitset> #include<cstdio> #include<stdlib.h> int max(int x,int y) { return x>y?x:y; } int min(int x,int y) { return x<y?x:y; } using namespace std; const int MAXN=1000002; const int INF=0x7f7f7f7f; int x,n; bitset<MAXN> b0,b1; int main() { int i; while(scanf("%d",&n)!=EOF) { b0.reset(); b1.reset(); int maxx=-1,minx=INF; for(i=0;i<n;++i) { scanf("%d",&x); maxx=max(maxx,x); minx=min(minx,x); if(b0[x]==0) { b0[x]=1; } else b1[x]=1; } int len=b0.count()-b1.count(); printf("%d\n",len); //if(!len) //continue; bool sign=false; for(i=minx;i<=maxx;++i) { if(b0[i]==1&&b1[i]==0) { if(sign) printf(" %d",i); else { printf("%d",i); sign=true; } } } if(len) printf("\n"); } return 0; }