传送门

题目大意

给你nnn个数,去掉尽量少的数使得剩下数的gcdgcdgcd比原来的大,无解输出−1-1−1。

思路

先求出所有数的gcdgcdgcd,然后每个数都除以gcdgcdgcd,想要gcdgcdgcd变大,就应该在剩下的数的质因子找到质因子出现次数最多的cntcntcnt,然后答案就是n−cntn-cntn−cnt。

代码

int n;
ll a[maxn];
bool vis[maxn];//标记非素数,0是素数
int primer[maxn/10];//存素数
int cnt=0;//记录素数个数,
void find_primer(){for(int i=2;i<=maxn;i++){if(!vis[i])primer[cnt++]=i;for(int j=0;j<cnt&&primer[j]*i<=maxn;j++){vis[i*primer[j]]=1;//筛if(i%primer[j]==0)break;//关键!!!找到i*primer[j]的最小质因子primer[j],退出}}
}map<int,int>mp;void init(int x){for(int i=0;i<cnt&&primer[i]*primer[i]<=x;i++){if(x%primer[i]==0){while(x%primer[i]==0){x/=primer[i];}mp[primer[i]]++;}}if(x>1) mp[x]++;
}
int x[maxn];
int gcd(int a,int b) {return b == 0 ? a : gcd(b, a%b);
}
int main(){find_primer();int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&x[i]);}int xx=x[1];for(int i=2;i<=n;i++){xx=gcd(xx,x[i]);}for(int i=1;i<=n;i++){x[i]=x[i]/xx;init(x[i]);}map<int,int>::iterator it;int ans=-1;for(it=mp.begin();it!=mp.end();it++){int tmp=it->second;//cout<<it->first<<" "<<it->second<<endl;ans=max(ans,it->second);}if(ans==0||ans==-1){puts("-1");return 0;}printf("%d",n-ans);
}

Codeforces 1034 A相关推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  3. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  4. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  5. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  6. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  7. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  8. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  9. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

最新文章

  1. Javascript 中的神器——Promise
  2. react-native 集成极光推送jpush-react-native时的小问题
  3. 13、设置默认字符集和校对规则
  4. Eclipse(javaweb)刚换工作空间之后,应该做哪几件事
  5. 什么是latex科技排版系统,有对比word有何不同?
  6. C指针原理(35)-Ncurses-文本终端的图形
  7. #define | enum(enumerator)
  8. php控制器教程,laravel基础教程 -- 控制器
  9. 忽悠CTO搞中台,把自己饭碗都搞砸了
  10. log4j的日志级别
  11. Electron 使用Widevine CDM插件
  12. C# 从零开始编写一个修改“植物大战僵尸”阳光的内存辅助
  13. markdown 语法
  14. latex formula
  15. P12证书转BKS证书
  16. 关于学习软件逆向分析意义的阐述
  17. SpringCloud 笔记
  18. 当工厂走出“工厂”,直营店也不止于“店”
  19. zigbee 终端设备如何离开当前网络
  20. 广播风暴原因可能及排除方法

热门文章

  1. live555 信令分发
  2. Python Tkinter模块详解(后续持续补充)
  3. 大型网站服务器的架构
  4. 3DSMax怎么设置摄像机参数_3DSMax设置摄像机参数 小白教程
  5. 一个正整数 n ,求n!的末尾有几个0
  6. 数学建模——统计回归模型
  7. pn532写入手机nfc_STM32f103(mini板)控制NFC模块(PN532)对NFC标签进行读写
  8. 关于noilinux的一些操作方法
  9. 服务器修改mysql登录密码忘了怎么办,云服务器mysql密码重置密码忘记了
  10. 刺激前低的EEG alpha功率增强了视觉知觉,但不是视觉知觉敏感度