Codeforces 1034 A
传送门
题目大意
给你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相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- Javascript 中的神器——Promise
- react-native 集成极光推送jpush-react-native时的小问题
- 13、设置默认字符集和校对规则
- Eclipse(javaweb)刚换工作空间之后,应该做哪几件事
- 什么是latex科技排版系统,有对比word有何不同?
- C指针原理(35)-Ncurses-文本终端的图形
- #define | enum(enumerator)
- php控制器教程,laravel基础教程 -- 控制器
- 忽悠CTO搞中台,把自己饭碗都搞砸了
- log4j的日志级别
- Electron 使用Widevine CDM插件
- C# 从零开始编写一个修改“植物大战僵尸”阳光的内存辅助
- markdown 语法
- latex formula
- P12证书转BKS证书
- 关于学习软件逆向分析意义的阐述
- SpringCloud 笔记
- 当工厂走出“工厂”,直营店也不止于“店”
- zigbee 终端设备如何离开当前网络
- 广播风暴原因可能及排除方法