1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; vector<int> b[N]; int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int n; cin>>n; for (int i=1;i<=n;i++) { int x; cin>>x; b[x].push_back(i); } int q; cin>>q; while(q--) { int m; cin>>m; int last=-1; bool flag=true; while(m--) { int x; cin>>x; if(!flag)continue; int l=0, r=b[x].size()-1;//注意有可能 r=0 或 -1 int pos=-1; while (l<=r) { int mid=(l+r)>>1; if (b[x][mid]>last) pos=mid, r=mid-1; else l=mid+1; } if (pos==-1) flag=false; else last=b[x][pos]; } if (flag) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }
- 1
信息
- ID
- 615
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 55
- 已通过
- 9
- 上传者