社区讨论
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 条回复,欢迎继续交流。
正在加载回复...