Codeforces Round #236 (Div. 2) D. Upgrading Array
来源:互联网 发布:淘宝买蜂蜜是真的吗 编辑:程序博客网 时间:2024/04/30 20:44
set..map..
质因数分解。。
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<set>#include<map>using namespace std;#define inf 0x3f3f3f3fint p[5050];int g[5050];set<int> b;int gcd(int a,int b){ return b?gcd(b,a%b):a; } int get(int x){int i,j;map<int,int> m;for(i=2;i*i<=x;i++){if(x%i==0){while(x%i==0){m[i]++;x/=i;}}}if(x!=1) m[x]++;map<int,int>::iterator it;int ans=0;for(it=m.begin();it!=m.end();it++){if(b.find((*it).first)!=b.end())ans-=(*it).second;elseans+=(*it).second;}return ans;}int main(){int n,m,i,j,k;scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&p[i]);for(i=0;i<m;i++){scanf("%d",&k);b.insert(k);}int sum=0;for(i=0;i<n;i++)sum+=get(p[i]);g[0]=p[0];for(i=1;i<n;i++)g[i]=gcd(g[i-1],p[i]);int h=1,t,res;for(i=n-1;i>=0;i--){t=g[i]/h;res=get(t);if(res<0){sum-=res*(i+1);h*=t;}}printf("%d\n",sum);//system("pause");}
0 0
- Codeforces Round #236 (Div. 2) D. Upgrading Array
- Codeforces Round #236 (Div. 2)D题 Upgrading Array ;dp
- CodeForces 402D Upgrading Array
- CodeForces 402D Upgrading Array
- CodeForces 402D Upgrading Array
- codeforces 402D D. Upgrading Array
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array
- Codeforces Round #275 (Div. 2) D. Interesting Array
- Codeforces Round #374 (Div. 2) D - Maxim and Array
- Codeforces Round #374 (Div. 2) D. Maxim and Array
- Codeforces Round #374 (Div. 2)D. Maxim and Array(贪心)
- Codeforces Round 374 (Div 2)D Maxim and Array 【贪心】
- Codeforces Round #374 (Div. 2) D. Maxim and Array
- Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心
- Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心
- Codeforces Round #236 (Div. 2)__Upgrading Array
- codeforces 402D D. Upgrading Array(dp+数论)
- Android触摸事件与点击事件的区别
- iframe布局 详细用法 及缺点
- 广州传智播客.Net培训之实话实说
- (转)OPENCV 函数cvCreateMat
- awk编程例子
- Codeforces Round #236 (Div. 2) D. Upgrading Array
- 用JDK7新实现的椭圆曲线加密算法对数据进行校验
- TypeError: 'tuple' object is not callable
- 低版本兼容使用Fragment
- C++:输入10个数字,找出最大最小值(可处理误输入)
- 获取当前图纸的名称(获取图纸名)和路径(path)
- POJ 3668 分数保存斜率
- Exchange Server 2010硬件负载均衡架构
- [Unity3D] monodevelop 在 MacOS 中文显示解决方法