萌新求助卡常
查看原帖
萌新求助卡常
264463
添哥楼主2023/8/15 12:01

动态开点线段树一直TLE#17

#pragma GCC diagnostic error "-std=c++11"
#pragma GCC target("avx")
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include<iostream>
using namespace std;
int n,q;
int sum[15000000],lazy[15000000],tot;
int lson[15000000],rson[15000000];
inline int read()
{
    register int x=0,t=1;
    register char ch=getchar();
    while(ch<'0'||ch>'9')
	{
        if(ch=='-')
        {
            t=-1;
		}
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
	{
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*t;
}
inline void write(int x)
{
    if(x<0)
	{
    	putchar('-');
		x=-x;
	}
    if(x>9)
    {
		write(x/10);
	}
    putchar(x%10+'0');
}
inline void pushdown(int l,int r,int i)
{
	if(lazy[i]==0)
	{
		return;
	}
	sum[i]=(lazy[i]%2)*(r-l+1);
	if(l==r)
	{
		return;
	}
	if(!lson[i])
	{
		tot++;
		lson[i]=tot;
	}
	lazy[lson[i]]=lazy[i];
	if(!rson[i])
	{
		tot++;
		rson[i]=tot;
	}
	lazy[rson[i]]=lazy[i];
	lazy[i]=0;
}
void modify(int l,int r,int ql,int qr,int k,int i)
{
	pushdown(l,r,i);
	if(qr<l||r<ql)
	{
		return;
	}
	if(ql<=l&&r<=qr)
	{
		lazy[i]=k;
		pushdown(l,r,i);
		return;
	}
	int mid=(l+r)>>1;
	if(!lson[i])
	{
		tot++;
		lson[i]=tot;
	}
	modify(l,mid,ql,qr,k,lson[i]);
	if(!rson[i])
	{
		tot++;
		rson[i]=tot;
	}
	modify(mid+1,r,ql,qr,k,rson[i]);
	sum[i]=sum[lson[i]]+sum[rson[i]];
}
int main()
{
	//cin>>n>>q;
	n=read(),q=read();
	tot++;
	while(q--)
	{
		int l,r,k;
		//cin>>l>>r>>k;
		l=read(),r=read(),k=read();
		modify(1,n,l,r,k,1);
		write(n-sum[1]);
		putchar('\n');
	}
	return 0;
}
2023/8/15 12:01
加载中...