提交记录 16415


用户 题目 状态 得分 用时 内存 语言 代码长度
Chameleon216 test. 自定义测试 Accepted 100 622.011 ms 36696 KB C++ 1.53 KB
提交时间 评测时间
2021-08-07 16:23:24 2023-09-03 19:41:53
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <climits>
#include <cctype>
#include <utility>
#define Fo(i,a,b) for(int i=(a);i<(b);++i)
#define Fr(i,a,b) for(int i=(a);i<=(b);++i)
#define Fl(i,a,b) for(int i=(a);i>=(b);--i)
#define Fill(x,n) memset((x),(n),sizeof(x))
using namespace std;
const int MX=1200000;
typedef long long ll;
int X[MX];

struct Seg
{
	ll v,z;
	void update(ll x,int l,int r){v+=x*(r-l+1),z+=x;}
}T[MX<<2];
#define li (i<<1)
#define ri (i<<1|1)
void pushup(int i){T[i].v=T[li].v+T[ri].v;}
void pushdown(int i,int l,int m,int r)
{
	if(T[i].z)T[li].update(T[i].z,l,m),T[ri].update(T[i].z,m+1,r),T[i].z=0;
}
#define m ((l+r)>>1)
void Build(int i,int l,int r)
{
	if(l==r){T[i].v=X[l];return;}
	Build(li,l,m),Build(ri,m+1,r);
	pushup(i);
}
void Add(int i,int l,int r,int a,int b,ll x)
{
	if(a<=l&&r<=b){T[i].update(x,l,r);return;}
	pushdown(i,l,m,r);
	if(a<=m)Add(li,l,m,a,b,x);
	if(b>m)Add(ri,m+1,r,a,b,x);
	pushup(i);
}
ll Ask(int i,int l,int r,int a,int b)
{
	if(a<=l&&r<=b)return T[i].v;
	pushdown(i,l,m,r); ll A=0;
	if(a<=m)A+=Ask(li,l,m,a,b);
	if(b>m)A+=Ask(ri,m+1,r,a,b);
	return A;
}


int Rand(int l,int r){return rand()%(r-l+1)+l;}
const int N=1000000;
ll Test()
{
	int op,l,r,x;
	ll ans=0;
	Fr(i,1,N)X[i]=Rand(1,100);
	Build(1,1,N);
	Fr(i,1,N)
	{
		op=Rand(1,2),l=Rand(1,N),r=Rand(1,N);
		if(l>r)swap(l,r);
		switch(op)
		{
		case 1:
			x=Rand(1,100);
			Add(1,1,N,l,r,x);
			break;
		case 2:
			ans^=Ask(1,1,N,l,r);
			break;
		}
	}
	return ans;
}


int main()
{
	printf("%lld\n",Test());
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1622.011 ms35 MB + 856 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-19 06:04:34 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠