求问关于M+1
查看原帖
求问关于M+1
142549
hbhz_zcy楼主2022/10/5 18:43

我不理解,为什么要判到 M+1M+1 位?

	N=qd(),M=qd(),Q=qd();K=qd();a[0]=1;
	for(int i=2;i<=N;i++)  a[0]+=(qd()>K);
	for(int i=1;i<=M;i++){
		int len=qd();
		a[i]+=a[i-1]+len;
		while(len--){
			int x=qd();if(x<K)  a[i+1]--;
			b[i].push_back(x);
		}
	}
	build(1,1,M+1);
	while(Q--){
		int x=qd(),y=qd(),z=qd();
		if((b[x][y-1]<K)^(z<K))  change(1,1,M+1,x+1,z>K?1:-1);
		b[x][y-1]=z;
		printf("%d\n",f[1].v<=N);
	}

其中线段树是区间加区间求最小值。
但是我第 MMrankrank 后挪裁员数,而第 M+1M+1 位只会对原本数目修正向前挪。
实在是无法理解。

2022/10/5 18:43
加载中...