玄学RE
查看原帖
玄学RE
1269609
yiwugougou楼主2025/1/5 10:28
//此代码在输出Yes时RE了。他玄学啦!
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct Node{
	int l,r;
}arr[50005];
int n,m;
int vis[50005],num[50005],ans[2][50005];
bool cmp(Node x,Node y){
	if(x.l/sqrt(n)!=y.l/sqrt(n)){
		return x.l<y.l;
	}
	return x.r<y.r;
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>num[i];
	}
	for(int i=1;i<=m;i++){
		cin>>arr[i].l>>arr[i].r;
	}
	sort(arr+1,arr+m+1,cmp);
	int left=1,right=1;
	for(int i=1;i<=m;i++){
	    int sum=0;
		while(left<arr[i].l){
			left--;
			vis[num[left]]++;
			if(vis[num[left]]==2){
			    sum++;
			}
		}
		while(left>arr[i].l){
			vis[num[left]]--;
			if(vis[num[left]]==1){
			    sum--;
			}
			left++;
		}
		while(right<arr[i].r){
			right++;
			vis[num[right]]++;
			if(vis[num[right]]==2){
			    sum++;
			}
		}
		while(right>arr[i].r){
		    vis[num[right]]--;
		    if(vis[num[right]]==1){
			    sum--;
			}
			right--;
		}
		if(sum==0){
			cout<<"Yes"<<endl;
		}else{
		    cout<<"No"<<endl;
		}
	}
	return 0;
}
2025/1/5 10:28
加载中...