zoukankan      html  css  js  c++  java
  • noip模拟赛 楼

    分析:题目可以转化为对于一个数,对它进行x次减法操作,n-x次加法操作,使他变成最小的非负整数.因为每减一次数就会减小,次数是一定的,所以可以二分x,就可以了.

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long ll;
    
    const int inf = 0x7fffffff;
    
    int n, m, u[2010], v[2010];
    ll ans = inf;
    
    void erfen(int cur)
    {
        int l = 0, r = 10000000,res = 0;
        while (l <= r)
        {
            int mid = (l + r) >> 1;
            if (1LL * u[cur] * (n - mid) - 1LL * v[cur] * mid >= 0)
            {
                res = mid;
                l = mid + 1;
            }
            else
                r = mid - 1;
        }
        ans = min(ans, 1LL * u[cur] * (n - res) - 1LL * v[cur] * res);
    }
    
    int main()
    {
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= m; i++)
            scanf("%d%d", &u[i], &v[i]);
        for (int i = 1; i <= m; i++)
            erfen(i);
        printf("%lld
    ", ans);
    
        return 0;
    }
  • 相关阅读:
    spring
    ajax
    jquary
    Java web 部分
    长跑马拉松
    面试的标准
    数据预处理——剔除异常值,平滑,归一化
    概率分布
    养生
    平滑的作用
  • 原文地址:https://www.cnblogs.com/zbtrs/p/7727007.html
Copyright © 2011-2022 走看看