• LightOJ Problem 1275 【解方程水题】


    Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu

    Description

    A group of N Internet Service Provider companies (ISPs) use a private communication channel that has a maximum capacity of C traffic units per second. Each company transfers T traffic units per second through the channel and gets a profit that is directly proportional to the factor T(C - T*N). The problem is to compute the smallest value of T that maximizes the total profit the NISPs can get from using the channel. Notice that N, C, T, and the optimal T are integer numbers.

    Input

    Input starts with an integer T (≤ 20), denoting the number of test cases.

    Each case starts with a line containing two integers N and C (0 ≤ N, C ≤ 109).

    Output

    For each case, print the case number and the minimum possible value of T that maximizes the total profit. The result should be an integer.

    Sample Input

    6

    1 0

    0 1

    4 3

    2 8

    3 27

    25 1000000000

    Sample Output

    Case 1: 0

    Case 2: 0

    Case 3: 0

    Case 4: 2

    Case 5: 4

    Case 6: 20000000

    求一元二次函数的最大值点,只不过因为解是整数,四舍五入会有偏差,要多多判断解的前一个值。

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int t;
        double n, c;
        scanf("%d", &t);
        int cnt = 0;
        while (t--) {
            scanf("%lf%lf", &n, &c);
            if(n == 0){
                printf("Case %d: 0
    ", ++cnt); continue;
            }
            long long ans = c/(2*n);
    
            if (ans*(c-ans*n) < (ans+1)*(c-(ans+1)*n))
                ans++;
            printf("Case %d: %lld
    ", ++cnt, ans);
        }
        return 0;
    }
    
    

     

  • 相关阅读:
    uva11552
    zoj3820 树的直径+二分
    hdu 5068 线段树加+dp
    zoj3822
    uva1424
    DAY 36 前端学习
    DAY 35 前端学习
    DAY 34 PYTHON入门
    DAY 33 PYTHON入门
    DAY 32 PYTHON入门
  • 原文地址:https://www.cnblogs.com/cniwoq/p/6770886.html
Copyright © 2020-2023  润新知