标签:
题意:给你x%ci=bi(x未知),是否能确定x%k的值(k已知)
分析:只要保证k能整除ci的最小公倍数即可,由于太大,所以通过暴力分解因子的办法来判断
#include <cstdio> #include <iostream> #include <ctime> #include <vector> #include <cmath> #include <map> #include <set> #include <stack> #include <queue> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int N=1e5+5; const int INF=0x3f3f3f3f; const int mod=1e9+7; bool cov[1005]; int n,k,cnt,fac[1005]; int main(){ scanf("%d%d",&n,&k); for(int i=2;i<=k;++i){ if(k%i)continue; int cur=1; while(k%i==0)cur*=i,k/=i; fac[++cnt]=cur; } for(int i=0;i<n;++i){ int x;scanf("%d",&x); for(int j=1;j<=cnt;++j) if(x%fac[j]==0)cov[j]=true; } bool flag=1; for(int i=1;i<=cnt;++i) if(!cov[i])flag=0; if(flag)printf("Yes\n"); else printf("No\n"); return 0; }
codeforces 688D - Remainders Game 数学相关
标签:
原文地址:http://www.cnblogs.com/shuguangzw/p/5629564.html