求助,玄学问题
查看原帖
求助,玄学问题
723466
banned_gutongxing楼主2024/6/20 14:27
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 3e5+10;
void read(int &x){
	x = 0;int p = 1;char ch;
	do{
		ch = getchar();
		if(ch=='-') p = -1;
	}while(!isdigit(ch));
	while(isdigit(ch)){
		x*=10;
		x+=ch-'0';
		ch = getchar();
	}
	x*=p;
}
void read(char &x){
	x = getchar();
	while(x==' '||x=='\n'||x=='\r') x = getchar();
}
void write(char x){
	putchar(x);
}
void write(int k){
	if(k<0) putchar('-');
	k = abs(k);
	stack<int> num;
	do{
		num.push(k%10);
		k/=10;
	}while(k);
	while(!num.empty()){
		putchar(num.top()+48);
		num.pop();
	}
}
class Segmnetree{
private:
	struct segmenttree{
		int l,r,maxn;
	}tree[MAXN<<3];
	void pushup(int k){
		tree[k].maxn = max(tree[k*2].maxn,tree[k*2+1].maxn);
	}
public:
	void build(int k,int l,int r){
		tree[k].l = l;
		tree[k].r = r;
		tree[k].maxn = 0;
		if(l==r) return;
		int mid = (l+r)>>1;
		build(k*2,l,mid);
		build(k*2+1,mid+1,r);
	}
	void change(int k,int x,int y){
		if(tree[k].l>x||tree[k].r<x) return;
		if(tree[k].l>=x&&tree[k].r<=x){
			tree[k].maxn = y;
			return;
		}
		change(k*2,x,y);
		change(k*2+1,x,y);
		pushup(k);
	}
	int maxn(int k,int l,int r){
		if(l>r) return 0;
		if(tree[k].l>r||tree[k].r<l) return 0;
		if(tree[k].l>=l&&tree[k].r<=r) return tree[k].maxn;
		return max(maxn(k*2,l,r),maxn(k*2+1,l,r));
	}
}tree1,tree2;
class DSU{
private:
	int fath[MAXN*2],sz[MAXN*2],end[MAXN*2];
public:
	int get_father(int x){
		if(x==fath[x]) return x;
		return fath[x] = get_father(fath[x]);
	}
	void init(int x){
		for(int i = 1;i<=x;i++){
			fath[i] = i;
			sz[i] = 0;
			end[i] = 0;
		}
	}
	bool merge(int x,int y){
		int fx = get_father(x);
		int fy = get_father(y);
		if(fx==fy) return false;
		fath[fy] = fx;
		sz[fx] += sz[fy];
		end[fx] = end[fy];
		return true;
	}
	void add(int x){
		sz[get_father(x)]++;
	}
	void set(int x,int y){
		end[get_father(x)] = y;
	}
	int val(int x){
		return end[get_father(x)];
	}
	int get(int x){
		return sz[get_father(x)];
	}
}dsu;
struct node{
	int x,y,id;
}a[MAXN],b[MAXN];
bool cmp_x(node a,node b){
	return a.x<=b.x;
}
bool cmp_y(node a,node b){
	return a.y==b.y?a.id<b.id:a.y<b.y;
}
bool cmp_id(node a,node b){
	return a.id<b.id;
}
int T,n,m,to[2][MAXN];
bitset<MAXN*2> vis;
void dfs(int s,int k,int fa){
	if(!s) dsu.add(s*n+k);
	vis[s*n+k] = 1;
	if(to[s][k]==0){
		dsu.set(s*n+k,s+1);
		return;
	}
	if(dsu.merge(s*n+k,(s^1)*n+to[s][k])){
		if(!vis[(s^1)*n+to[s][k]]) dfs(s^1,to[s][k],k);
	}else{
		dsu.set(s*n+k,-1);
	}
}
int mapping[MAXN];
signed main(){
	read(T);
	bool ttmp = T==10000;
	while(T--){
		read(n);
		for(int i = 1;i<=n;i++) read(a[i].x);
		for(int i = 1;i<=n;i++) read(a[i].y);
		sort(a+1,a+1+n,cmp_x);
		for(int i = 1;i<=n;i++) tree1.change(1,i,a[i].y);
		read(m);
		for(int i = 1;i<=m;i++) read(b[i].x);
		for(int i = 1;i<=m;i++) read(b[i].y);
		sort(b+1,b+1+m,cmp_x);
	}
	return 0;
}

这段代码为什么输入:

1
4
3       7       9       3
3       6       7       10
83
2       10      2       10      3       8       9       7       5       4       7       7       6       8       9       7       5       10      5       9       3       5       9       10      2       9       5       2       10      1       4       7       6       8       8       10      9       9       2       7       4       7       7       6       9       7       2       2       7       3       5       2       10      9       1       1       5       2       1       6       3       9       5       1       7       10      1       10      3       10      1       3       4       4       3       1       7       4       6       1       4       4       2
5       4       4       7       2       7       4       10      6       1       6       10      9       10      2       7       5       6       1       8       8       9       8       10      10      4       5       2       6       5       5       5       9       9       2       6       6       9       5       6       1       5       1       3       5       3       6       8       10      5       9       2       4       7       4       1       8       5       8       7       3       6       5       10      9       4       1       5       8       9       6       7       7       5       9       7       5       10      1       3       9       10      1

就RE了?

2024/6/20 14:27
加载中...