zoukankan      html  css  js  c++  java
  • POJ NOI MATH-7651 自来水供给

    问题链接POJ NOI MATH-7651 自来水供给


    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

    有n个村子,坐落在从县城出发的一条公路上。

    现在要通过安装水管,从县城向各村供给自来水。水管有粗细两种,粗管可供给任意数量的村子,而细管只能供给一个村子。粗管每公里8000元,细管每公里2000元。

    问如何搭配粗管和细管,使得费用最低?

    输入
    第一行:一个整数n。0 < n < 100。
    第二行:n个整数,按与县城的距离从近到远给出各村与县城的距离,两个整数之间用单个空格隔开。距离单位为公里,不超过100。
    输出
    一个整数,即最低费用。
    样例输入
    10
    30 5 2 4 2 3 2 2 2 5
    样例输出
    414000
    来源
    《奥数典型题举一反三(小学六年级)》 (ISBN 978-7-5445-2883-2) 第六章 第三讲 习题12




    问题分析

      这是一个计算的问题,是找最小花费问题。

      可以考虑,把粗水管埋到第i个村,剩下的村庄从第i个村庄开始使用细水管。

    程序说明

      (略)。




    AC的C++语言程序:

    #include <iostream>
    
    using namespace std;
    
    const int MAXINT = ~((unsigned int)0) >> 1;
    
    const int N = 100;
    
    int s[N+1], t[N+1];
    
    int main()
    {
        int n, ans;
    
        cin >> n;
    
        s[0] = 0;
        t[0] = 0;
    
        for(int i=1; i<=n; i++) {
            cin >> s[i];
            s[i] += s[i - 1];
    
            t[i] = t[i - 1] + s[i];
        }
    
        ans = MAXINT;
        for(int i=1; i<=n; i++)     // //1~i粗 i+1~n细
            ans = min(ans, s[i] * 8000 + (t[n] - t[i] - (n - i) * s[i]) * 2000);
    
        cout << ans << endl;
    
        return 0;
    }



  • 相关阅读:
    php 高级 提高PHP代码的性能10条建议
    CSRF预防手段
    如何在PHP中防止SQL注入
    网络安全 如何防范 XSS 攻击
    php 算法知识 冒泡排序
    php 基础知识 常见面试题
    MySQL高级 InnoDB 和 MyISAM 的区别
    php 算法知识 猴子选大王
    MySQL高级-索引1
    [POI2007]POW-The Flood(并查集)
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563958.html
Copyright © 2011-2022 走看看