zoukankan      html  css  js  c++  java
  • 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;
    }
    
    

     

  • 相关阅读:
    MySQL视图
    MySQL触发器
    SQL语法详解
    MySQL函数和操作符
    MySQL常用查询
    MySQL数据类型
    MySQL操作详解
    MySQL学习-SQL约束
    MySQL 其它基本操作
    MySQL创建数据库并插入数据
  • 原文地址:https://www.cnblogs.com/cniwoq/p/6770886.html
Copyright © 2011-2022 走看看