这里思路就是枚举+类似记忆化,70pts,有dalao能帮蒟蒻看看吗
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+100;
int n;
int m;
int T;
map<int,int>ma,ma1;
map<int,map<int,int> >vis;
int main(){
cin>>T;
while(T--){
cin>>n>>m;
if(ma[n]<=m&&ma[n]!=0)cout<<"Yes"<<endl;
else if(ma[n]!=0) {
cout<<"No"<<endl;
}
else{
bool flag=false;
for(int i=max(ma1[n],1);i<=m;i++){
int cnt=n%i;
vis[n][cnt]++;
if(vis[n][cnt]==2){
ma[n]=i;
flag=true;
break;
}
}
if(flag){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
ma1[n]=m;
}
}
}
return 0;
}