社区讨论
求助刚才CF,D
学术版参与者 4已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo8i41d6
- 此快照首次捕获于
- 2023/10/27 18:59 2 年前
- 此快照最后确认于
- 2023/10/27 18:59 2 年前
WA at 3
CPP#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,m;
int q;
int xs,ys,xe,ye;
int k;
int f[N][25];
int lg[N];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>f[i][0];
cin>>q;
for(int i=2;i<=m;i++) lg[i]=lg[i>>1]+1;
for(int j=1;j<=lg[m];j++)
for(int i=1;i<=m-(1<<j)+1;i++)
f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
while(q--){
cin>>xs>>ys>>xe>>ye>>k;
if(ys>ye) swap(xs,xe),swap(ys,ye);
if(abs(ys-ye)%k!=0||abs(xs-xe)%k!=0){
cout<<"NO\n";
continue;
}
if(ys+k>m){
cout<<"NO\n";
continue;
}
int mid=abs(ye-ys)+1;
int maxx=max(f[ys][lg[mid]],f[ye-(1<<lg[mid])+1][lg[mid]]);
if(xs>maxx){
cout<<"YES\n";
continue;
}
int wz=xs+k*((maxx-xs)/k+1);
//cout<<wz<<endl;
if(wz<=n) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...