有没有大佬教教我题解是什么意思呀?
查看原帖
有没有大佬教教我题解是什么意思呀?
315205
Kniqht楼主2023/11/14 12:29

为什么矩阵最多只有 64×log⁡n64\times \log n 个1啊

另外能不能帮忙看看这个代码为什么错了qwq,就是总贡献减去全0区间

#include<bits/stdc++.h>
#define Misaka namespace  
#define Mikoto std 
#define ull unsigned long long 
using Misaka Mikoto;
namespace READ
{
	ull Read()
	{
		char ch=getchar();
		ull s=0;
		while(ch<'0'||ch>'9') ch=getchar();
		while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
		return s;
	}
	ull tp[10005];
	int l,r;
	ull g1,g2;
	void init(int &n)
	{
		int i,k;
		n=Read(),k=Read(),l=1;
		for(i=1;i<=k;i++)
			tp[i]=Read();
	}
	ull read()
	{
		if(l>r)
			l=Read(),r=Read(),g1=Read(),g2=Read();
		return tp[l++]*g1+g2;
	}
}
const int N=5e7+10;
ull a[N];
int lst[64];
signed main(){
	int n;
   	READ::init(n);
	for(int i=1;i<=n;i++) a[i]=READ::read();
	ull ans=0;
	for(int i=0;i<=63;i++){
		ans+=(ull)n*(n+1)/2*(1ull<<i);
		for(int j=1;j<=n;j++){
			if(a[j]>>i&1) ans-=(ull)(j-lst[i]-1)*(j-lst[i])/2*(1ull<<i),lst[i]=j;
		}
	}
	printf("%llu",ans);
	return 0;
}
2023/11/14 12:29
加载中...