UVA 1648 Business Center

https://vjudge.net/problem/UVA-1648

设上升x层,列个方程解出来,再把x带回去

#include<cmath>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int u[2001],d[2001];
int main()
{
    int n,m,ans,x;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        ans=2e9;
        for(int i=1;i<=m;i++) scanf("%d%d",&u[i],&d[i]);
        for(int i=1;i<=m;i++) 
        {
            x=d[i]*n/(u[i]+d[i])+1;
            ans=min(ans,u[i]*x-d[i]*(n-x));
        }
        printf("%d
",ans);
    }
}
原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/7424429.html