P6271【十月的出塞】集合统计 | ||
|
问题描述
王昌龄参加了CSP的初赛却没能进入复赛,于是写下了著名的绝句《出塞》。
众所周知,CSP初赛考察内容和复赛考察内容大相径庭。即使初赛拿了高分,也不代表复赛能够取得好成绩;反之如果初赛发乎不佳,复赛说不定也能取得好成绩。现在,王昌龄正面临一道复赛题发愁,你能帮帮他吗?
题目给出了一个集合序列$S_1,S_2,\dots,S_n$,每个集合都是$\{0,1,\dots,m-1\}$的子集。而这道题要给每个$1\leq i\leq n$统计,有多少个$1\leq j\leq i$,对应的集合$S_j$是$S_i$的子集。
输入格式
第一行输入两个正整数$n,m$,含义如上所述。
接下来$n$行,每行一个在$0$到$2^m-1$之间的十进制整数。第$i$个数是将集合$S_i$写成二进制形式后的十进制数值。
输出格式
输出$n$行,每行一个整数。第$i$个整数表示有多少个$j$满足$1\leq j\leq i$且$S_j\subseteq S_i$。
样例输入
6 2
2
1
2
0
3
2
样例输出
1
1
2
1
5
4
提示
数据规模与约定
对于25%的数据,\(n\leq 1000\);
对于另外25%的数据,\(m\leq 8\);
对于100%的数据,$2\leq n\leq 10^5, 1\leq m\leq 16$,每个$S_i$都是在$[0,2^m-1]$范围内的所有整数中等概率随机选择。