社区讨论

RE求调

AT_abc338_e [ABC338E] Chords参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lryad26f
此快照首次捕获于
2024/01/29 10:03
2 年前
此快照最后确认于
2024/01/29 11:26
2 年前
查看原帖
CPP
 #include <bits/stdc++.h>

using namespace std;

// define
#define re register
#define fi first
#define se second
#define pb push_back
#define il inline
#define co const
#define ls (rt << 1)
#define rs (rt << 1 | 1)
#define mid ((l + r) >> 1)
#define lowbit(x) x & -x
#define all(x) x.begin(), x.end()
#define fst ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define fup(x, l, r) for (re int x = (l), eNd = (r); x <= eNd; ++ x )
#define fdw(x, r, l) for (re int x = (r), eNd = (l); x >= eNd; -- x )
#define int long long

const int N = 1e6 + 10, M = 2e6 + 10;

int n,a[N],b[N];
int f[25][25];
int lg[N];

signed main()
{	fst;
	cin>>n;
	fup(i,1,n)
	{
		cin>>a[i]>>b[i];
		if(a[i]>b[i])	swap(a[i],b[i]);
		f[a[i]][0]=max(f[a[i]][0],b[i]);
	}
	lg[1]=0;
	fup(i,2,n)	lg[i]=lg[i>>1]+1;
	fup(j,1,24)
	{
		for(int i=1;i+(1<<j)-1<=2*n;i++)
		{
			f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
		}
	}
	fup(i,1,n)
	{
		int p=lg[b[i]-a[i]-1];
		int res=max(f[a[i]+1][p],f[b[i]-1-(1<<p)+1][p]);
		if(res>b[i])
		{
			puts("Yes");
			return 0;
		}
	}
	puts("No");
	return 0;
}

回复

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

正在加载回复...