社区讨论
莫队 51 分 WA 求助!!!
P5355[Ynoi Easy Round 2017] 由乃的玉米田参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mdihhrww
- 此快照首次捕获于
- 2025/07/25 15:12 8 个月前
- 此快照最后确认于
- 2025/11/04 03:45 4 个月前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5,M=1e5+1;
int n,m,tot,B;
int mal[N],las[N],a[N],cnt[N],ans[N],cun[N];
bitset<N> jia,jian;
struct node{
int l,r,id,opt,x;
friend bool operator<(node a,node b){
if(a.l/B==b.l/B) return a.r<b.r;
return a.l<b.l;
}
}q[N],q2[N];
void add(int o){
cnt[a[o]]++;
if(cnt[a[o]]==1){
jia.set(a[o],true);
jian.set(M-a[o],true);
}
}
void del(int o){
cnt[a[o]]--;
if(cnt[a[o]]==0){
jia.set(a[o],false);
jian.set(M-a[o],false);
}
}
signed main(){
scanf("%lld%lld",&n,&m);
B=sqrt(n);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=m;i++){
scanf("%lld%lld%lld%lld",&q[i].opt,&q[i].l,&q[i].r,&q[i].x);
q[i].id=i;
if(q[i].opt==4 && q[i].x<B && q[i].x!=0) q2[++tot]=q[i];
}
sort(q+1,q+m+1);
int L=1,R=0;
for(int i=1;i<=m;i++){
if(q[i].opt==4 && q[i].x<B && q[i].x!=0) continue;
while(q[i].l<L) add(--L);
while(q[i].r>R) add(++R);
while(q[i].l>L) del(L++);
while(q[i].r<R) del(R--);
if(q[i].x==0 && q[i].opt>=3){
if(jia[0]) ans[q[i].id]=1;
if(q[i].opt==4 && q[i].r-q[i].l==0) ans[q[i].id]=0;
continue;
}
if(q[i].opt==1){
if(((jia<<q[i].x)&jia).any()) ans[q[i].id]=1;
}else if(q[i].opt==2){
if(((jia<<(M-q[i].x))&jian).any()) ans[q[i].id]=1;
}else if(q[i].opt==3){
for(int j=1;j*j<=q[i].x;j++){
if(q[i].x%j==0 && jia[j] && jia[q[i].x/j]){
ans[q[i].id]=1;
break;
}
}
}else{
for(int j=1;j*q[i].x<=M;j++){
if(jia[j] && jia[q[i].x*j]){
ans[q[i].id]=1;
break;
}
}
}
}
for(int i=1;i<=B;i++){
for(int j=1;j<=n;j++) mal[j]=las[j]=0;
int ma=0;
for(int j=1;j<=n;j++){
las[a[j]]=j;
if(a[j]!=0 && i%a[j]==0) ma=max(ma,las[i/a[j]]);
if(a[j]!=0 && i*a[j]<=M) ma=max(ma,las[i*a[j]]);
mal[j]=ma;
}
for(int j=1;j<=tot;j++){
if(q2[j].x==i && q2[j].l<=mal[q2[j].r]) ans[q2[j].id]=1;
}
}
for(int i=1;i<=m;i++){
if(ans[i]) printf("yuno\n");
else printf("yumi\n");
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...