1、直接用bitset进行 & | ^ 操作,它的效率取决于bitset的长度
长为1e5的bieset进行1e5次 位运算,1s+
2、any(),none()也与长度有关
长为1e5的bitset进行1e5次,0.8s+
3、all()取决于里面1的数量,如果全是1的话,根any()差不多
#include<cstdio> #include<bitset> using namespace std; #define N 100000 bitset<N>b[2],c; int main() { int sum=0; for(int i=1;i<=100000;++i) { c=b[0]&b[1]; // if(c.any()) sum++; } }
血泪纪念。。
我还自以为改成用bitset更快了。。死磕3小时。。。