RT,如下的代码(根本没有卡常)开 O2 直接日过去不合理吧(
#include <cstdio>
#include <cmath>
#define N 100010
#define T 40
int n;
int a[N];
int f[T];
int main()
{
int l,t,o;
scanf("%d%d%d",&l,&t,&o);
for(int i=1;i<=l;i++) a[i]=1;
while(o--)
{
char c;
int x,y,z;
scanf(" %c%d%d",&c,&x,&y);
if(x>y){int t=x;x=y;y=t;}
if(c=='P')
{
int ans=0;
for(int i=0;i<=30;i++) f[i]=0;
for(int i=x;i<=y;i++) if(!f[a[i]]++) ans++;
printf("%d\n",ans);
}
else
{
scanf("%d",&z);
for(int i=x;i<=y;i++) a[i]=z;
}
}
}
增强数据想法:
100000 30 100000
C 1 100000 1
P 1 100000
C 1 100000 2
P 1 100000
....(省略99996行)....
估计能卡到 O(nm) (