NOIP模拟题 2016.11.18 [数论] [计数] [并查集]

第一题:信(believe.cpp/c/pas)
背景描述:
一切死亡都有冗长的回声
—— 《一切》北岛
给定一个N个元素的序列A,
定义Bi = (Ai and A1) + (Ai and A2) + (Ai and A3)+ …… + (Ai and An)
定义Ci = (Ai or A1) + (Ai or A2) + … + (Ai or An)
求B和C序列。
输入格式:
第一行一个整数N表示序列长度
接下来一行N个整数, 第i个整数为Ai
输出格式:
第一行N个整数输出B序列
第二行N个整数输出C序列
样例输入:
4
3 5 1 1
样例输出:
6 8 4 4
16 22 10 10
数据规模:
对于50%的数据, N <= 1000
对于100%的数据, N <= 100000, Ai <= 100000
注意事项:
输入量较大, 请使用比较快的例如scanf的读入方式, 最好不要采用cin。


统计二进制位上的1的个数。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef WIN32
#define AUTO "%I64d"
#else
#define AUTO "%lld"
#endif
#define maxx(x,y,z) max((x),max((y),(z)))
#define minn(x,y,z) min((x),min((y),(z)))
#define smax(x,y) x=max((x),(y))
#define smin(x,y) x=min((x),(y))
using namespace std;
template <class T> inline void read(T &x)
{x = 0;T flag = 1;char ch = (char) getchar();while(ch<'0' || ch>'9'){if(ch == '-') flag = -1;ch = (char) getchar();}while(ch>='0' && ch<='9'){x = (x<<1) + (x<<3) + (ch-'0');ch = (char) getchar();}x *= flag;
}
template <class T> T gcd(T a,T b) { return !b? a : gcd(b,a%b); }
typedef long long LL;
const int INF = 0x3f3f3f3f;
const int maxn = 100005;
const 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部