社区讨论

远远小于n^2的卡过~~~

P1311[NOIP 2011 提高组] 选择客栈参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6om9yr
此快照首次捕获于
2025/11/20 08:17
4 个月前
此快照最后确认于
2025/11/20 08:17
4 个月前
查看原帖
CPP
#include<cstdio>
#include<ctype.h>
#define I inline
#define R register
	int n,k,m,ans=0;
	int sum[200010];
	struct node{int t;int p[200010];node(){t=0;}} a[50];
I char getc()
{ 
    static char buf[1<<18],*fs,*ft;
    return(fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<18,stdin)),fs==ft)?EOF:*fs++;
}
I int read()
{ 
    char ch=getc(),f=1;
    int x=0;
    for(;!isgraph(ch);ch=getc());
    if(ch=='-') f=-1,ch=getc();
    for(;isdigit(ch);ch=getc())
        x=((x+(x<<2))<<1)+(ch^0x30);
    return x*f;
}
int main()
{
	int color,prise;
	n=read(),k=read(),m=read();
	for(R int i=1;i<=n;i++)
	{
		color=read(),prise=read();
		a[color].p[++a[color].t]=i;
		sum[i]=sum[i-1]+(prise<=m);
	}
	for(R int i=0;i<k;i++)
		for(R int j=1;j<=a[i].t;j++)
			for(R int k=j+1;k<=a[i].t;k++)
				ans+=(bool)(sum[a[i].p[k]]-sum[a[i].p[j]-1]);
	printf("%d",ans);
}

回复

1 条回复,欢迎继续交流。

正在加载回复...