返回题解分享
讨论 / 题解分享/ 帖子详情

路径(结果填空) - 题解

#include<bits/stdc++.h>

using namespace std;

#define ll long long

int a[2050][2050];

int d[2025];

int gcd(int a,int b)

{

return b==0?a:gcd(b,a%b);


}

int lcm(int a,int b)

{

return a/gcd(a,b)\*b;


}

int main()

{

//ios::sync\_with\_stdio(false),cout.tie(0),cin.tie(0);


int n=2021;

memset(a,0x3f,sizeof a);

memset(d,0x3f,sizeof d);

for(int i=1;i<=2021;i++)

{

a[i][i]=0;

for(int j=i+1;j<=i+21&&j<=2021;j++)

{

	a[i][j]=a[j][i]=lcm(i,j);

}


}

d[1]=0;

for(int i=1;i<=n;i++)

{

for(int j=i+1;j<=2021&j-i<=2021;j++)

{

	d[j]=min(d[j],d[i]+a[i][j]);

}


}

cout<<d[2021];

return 0;

}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!