题面在这里!

 

好久没做题啦,养生一下qwq

 

推一推贡献就会发现这TM就是一个水题啊!

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+5,ha=998244353;

inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}

int n,X,Y,now,cnt[33],ans;

int main(){
	scanf("%d",&n);
	
	X=1;
	for(int i=1;i<n-1;i++) X=add(X,X);
	Y=n==1?1:add(X,X);
	
	for(int i=0;i<n;i++){
		scanf("%d",&now);
		
		for(int j=30;j>=0;j--) if((1<<j)&now){
			ADD(ans,cnt[j]?X:Y);
			break; 
		} 
		
		for(int j=0;j<=30;j++) if(now&(1<<j)) cnt[j]|=1;
	}
	
	printf("%d\n",ans);
	return 0;
}

  

相关文章:

  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-08-16
  • 2021-10-07
  • 2021-08-13
猜你喜欢
  • 2021-10-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
相关资源
相似解决方案