CF 510D(Fox And Jumping-dp,注意赋值)
来源:互联网 发布:学淘宝运营要多长时间 编辑:程序博客网 时间:2024/05/16 09:23
很明显,只要取的数gcd=1就行。
因此dp,f[i]表示gcd=i的最小费用
质数不多随便做。
PS:注意map中没赋值的情况
PS2:l[i]可能重复,小心覆盖
PS3:事先给h[1]赋值INF时,要考虑l[i]中本来就有1的情况
wa到残。。。
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<queue>#include<map>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=pre[x];p;p=next[p])#define Forpiter(x) for(int &p=iter[x];p;p=next[p]) #define Lson (x<<1)#define Rson ((x<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (100000007)#define MAXN (300+300+10)long long mul(long long a,long long b){return (a*b)%F;}long long add(long long a,long long b){return (a+b)%F;}long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;}typedef long long ll;priority_queue<int> q;map<int,int> h;int gcd(int a,int b){if (b==0) return a;return gcd(b,a%b);}int n,l[MAXN],c[MAXN];int main(){//freopen("Jumping.in","r",stdin);//freopen(".out","w",stdout);cin>>n;For(i,n) scanf("%d",&l[i]);For(i,n) scanf("%d",&c[i]);For(i,n) {if (h.find(l[i])!=h.end()){h[l[i]]=min(h[l[i]],c[i]);continue;}h[l[i]]=c[i],q.push(l[i]);}while (!q.empty()){int t=q.top();q.pop();For(i,n){int t2=gcd(t,l[i]),c2=h[t]+h[l[i]];//cout<<t2<<' '<<c2<<endl;if (h.find(t2)==h.end()||h[t2]>c2){h[t2]=c2;q.push(t2); }}}if (h.find(1)==h.end()) cout<<"-1\n";else cout<<h[1]<<endl;return 0;}
0 0
- CF 510D(Fox And Jumping-dp,注意赋值)
- CF D. Fox And Jumping
- 510D Fox And Jumping(dp+gcd)
- codeforces 510D D. Fox And Jumping(dp+数论)
- codeforces 510D D. Fox And Jumping(dp+数论)
- Codeforcres 510D Fox And Jumping (数论+dp)
- Fox And Jumping - CodeForces 510 D
- codeforces 510D Fox And Jumping
- codeforces 510D Fox And Jumping
- codeforces 510D Fox and Jumping
- codefoces--510D. Fox And Jumping
- Codeforces 510D.Fox And Jumping By Assassin 数论+状压dp
- Codeforces 510D Fox And Jumping【数论+Dp+压缩空间】好题~
- Codeforces Round #290 D. Fox And Jumping
- #290 (div.2) D. Fox And Jumping
- 数论+dp状压 Codeforces510D Fox And Jumping
- Codeforces 510D. Fox And Jumping By Assassin 暴力大法好
- Codeforces Round #290 (Div. 2) D Fox And Jumping
- MapReduce练习(一)
- iOS-UIView属性动画和常用方法
- apache poi读取excel(03版本之前)
- W2A_CP()宏转换
- ORACLE 11G 中采用rman备份异机恢复数据库详细过程
- CF 510D(Fox And Jumping-dp,注意赋值)
- Intant传递封装类
- Java语言用POI操作Excel
- android 获取控件坐标/位置不显示问题
- 初学latex的文献引用\bibliographystyle使用一些状况
- 学习C++——泛型算法
- oracle表空间
- LINK - Azure Mobile Services - Custom Bulk Insert Javascript API
- 1、去除图像中的alpha通道或透明度