二人同WA,其气冲天。
查看原帖
二人同WA,其气冲天。
289056
北射天狼楼主2023/7/3 11:15

二WA杀二士,悬赏二关注。惨景春崖岭,苦心无经营。

题目背景

#include <bits/stdc++.h>
#define int __int128
using namespace std;
typedef long long ll;
int n,a,b,c,d;
int ans = 2e18;
void exgcd(int a,int b,int &x,int &y)
{
	if (b == 0)
	{
		x = 1,y = 0;
		return ;
	}
	exgcd(b,a%b,x,y);
	int z = x;x = y;y = z - a/b * y;
}
int read(){
	ll x;scanf("%lld",&x);
	return x;
}
void print(__int128 x){
	printf("%lld",(ll)x);
}
signed main()
{
	n = read(),a = read(),b = read(),c = read(),d = read();
	int maxn =  max(a,c);
	if (a * d < b * c)
	    swap(a,c),swap(b,d);
	//a,b 的性价比 比 c,d 大 
	for (int i=0;i<=maxn;i++)
	{
        // ax + cy = N + i;
        if ((n + i) % __gcd(a,c))
            continue;
        int x,y;
        exgcd(a,c,x,y);
        y = (y + (a / __gcd(a,c))) % (a / __gcd(a,c));
        y = y * (n + i)/ (__gcd(a,c));
        y = (y + (a / __gcd(a,c))) % (a / __gcd(a,c));
        x = (n + i - y * c)/a;
        ans = min(ans,x * b + y * d);
	}
	print(ans);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll a,b,c,d;
int main(){
	scanf("%lld%lld%lld%lld%lld",&n,&a,&b,&c,&d);
	if(a<c) swap(a,c),swap(b,d);
	if(b*c<a*d){
		if(n%a==0) printf("%lld",n/a*b);
		else{
			ll e=n/a+1,f=a-n%a,g=0;
			for(ll i=1;a>i*c&&b>i*d;i++){
				g+=f/(a-i*c)*i;
				e-=f/(a-i*c);
				f%=(a-i*c);
			}
			printf("%lld",e*b+g*d);
		}
	}else{
		if(n%c==0) printf("%lld",n/c*d);
		else{
			ll e=n/c+1,f=c-n%c,g=0;
			for(ll i=f;a<i*c&&b<i*d;i--){
				g+=f/(i*c-a);
				e-=f/(i*c-a)*i;
				f%=(i*c-a);
			}
			printf("%lld",e*d+g*b);
		}
	}
	return 0;
}

所有将两份代码调出的人,都是世界上颜值最高、情商最高、智商最高的十全少年!

惨案1: https://www.luogu.com.cn/record/113818950

惨案2: https://www.luogu.com.cn/record/113817563

2023/7/3 11:15
加载中...