• UVa 11054 Wine trading in Gergovia【贪心】


    题意:给出n个等距离的村庄,每个村庄要么买酒,要么卖酒,买酒和卖酒的总量相等,

    把k个单位的酒从一个村庄运送到相邻的村庄,需要耗费k个单位劳动力,问怎样运送酒使得耗费的劳动力最少

    买     卖          买        卖        买

    5      -4          1         -3        1

    可以从样例来模拟,第一个村庄需要买5桶酒,这5桶酒都是从右边的别的村庄运过来的,第二个村庄需要卖4桶酒,

    那么可以这样想,第一个和第二个村庄捆绑在一起的需求量为 a1+a2,而a1+a2又是从别的村庄运送过来的

    再比如说

    第一个村庄买的是5,那么需要5个劳动力运过来,

    第二个村庄卖的是4,那么是它运过来的,

    所以这一趟只满足了4桶酒,剩下的1继续累加,直到遇到负数把它抵消,说明又有酒运过来了

    感觉是一个村庄一个村庄累积= =纸上模拟一下样例好理解点= =

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath> 
     5 #include<stack>
     6 #include<vector>
     7 #include<map> 
     8 #include<set>
     9 #include<queue> 
    10 #include<algorithm>  
    11 #define mod=1e9+7;
    12 using namespace std;
    13 
    14 typedef long long LL;
    15 
    16 int main(){
    17     int n;
    18     while(cin>>n&&n){
    19         LL ans=0,last=0,a;
    20         for(int i=0;i<n;i++){
    21             cin>>a;
    22             ans+=abs(last);
    23             last+=a;
    24             printf("last=%d
    ",last);            
    25         }
    26         cout<<ans<<"
    ";
    27     }
    28     return 0;
    29 }
    View Code
  • 相关阅读:
    ExtJs之Grid
    [java]转:String Date Calendar之间的转换
    SQL Server脚本备份
    Java实现文件夹的复制(包括子文件夹与文件)
    Android webview使用详解
    zxing条码扫描横屏修改
    Genymotion的安装与eclipse配置教程
    开发中遇到的问题
    sql中COUNT()+GROUP BY +HAVING的组合使用
    由于包名与引用的库名相同导致的报错
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4360940.html
Copyright © 2020-2023  润新知