1 条题解
-
0
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=3005; int n,m,k,s,t,a[N],vis[N],K,Q,ans[N]; deque<int> e[N]; void dfs(int u){ vis[u]=1; for (int &v:e[u]){ if (!vis[v]) dfs(v); } } int ok(int x){ int u=a[x],v=a[x+1]; if (!(x&1)) swap(u,v); memset(vis,0,sizeof(vis)); dfs(v); if (!vis[u]) {e[u].push_back(v);return 1;} return 0; } int main(){ cin>>n>>K>>Q; for (int i=1;i<=n;++i) cin>>a[i]; int r=1; for (int l=1;l<=n;++l){ r=max(l,r); while (r<n && ok(r)) ++r; ans[l]=r; if (r>l){ if (l&1) e[a[l]].pop_front(); else e[a[l+1]].pop_front(); } } while (Q--){ cin>>s>>t; cout<<(ans[s]>=t?"YES":"NO")<<"\n"; } }
- 1
信息
- ID
- 804
- 时间
- 2000ms
- 内存
- 1000MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 3
- 上传者