#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=2100010;
int t,n,q;
int sum[maxn*4],mar[maxn];
void build(int l,int r,int i)
{ mar[i]=0;
if(l==r)
{
sum[i]=1;
return;
}
int mid=(l+r)>>1;
build(l,mid,i<<1);
build(mid+1,r,i<<1|1);
sum[i]=sum[i<<1]+sum[i<<1|1];
}
void pushdown(int i,int m)
{
if(mar[i])
{
mar[i<<1]=mar[i];
mar[i<<1|1]=mar[i];
sum[i<<1]=mar[i]*(m-(m>>1));
sum[i<<1|1]=mar[i]*(m>>1);
mar[i]=0;
}
}
void updata(int L,int R,int d,int l,int r,int i)
{
if(L<=l&&r<=R)
{
mar[i]=d;
sum[i]=d*(r-l+1);
return;
}
pushdown(i,r-l+1);
int mid=(l+r)>>1;
if(L<=mid)
updata(L,R,d,l,mid,i<<1);
if(R>mid)
updata(L,R,d,mid+1,r,i<<1|1);
sum[i]=sum[i<<1]+sum[i<<1|1];
}
int main()
{
scanf("%d",&t);
for(int cnt=1;cnt<=t;cnt++)
{
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
sum[i]=1;
build(1,n,1);
int x,y,d;
while(q--)
{
scanf("%d%d%d",&x,&y,&d);
updata(x,y,d,1,n,1);
}
printf("Case %d: The total value of the hook is %d.\n",cnt,sum[1]);
}
return 0;
}
hdu:1556 Just a Hook
最新推荐文章于 2022-12-12 21:12:45 发布