在一条街上有许多房屋,每间屋子里都住着人,并且都是做葡萄酒生意的商人,他们每天都要决定买卖多少瓶葡萄酒。有趣的地方是,供需总是完美地一致。商人总是能买到自己需要的葡萄酒,并且,他们从来不介意是从哪个商人那里购入的,只要求葡萄酒的搬运时间越少越好。如果把一瓶葡萄酒搬运到隔壁的成本是1,请求出全部葡萄酒买卖的最低搬运成本。

  2. 输入和输出

  输入数据由多行构成,每两行是一组测试数据。第一行是整条街上的店铺数n(2~100 000),第二行是n个整数,代表每间店面希望买卖的葡萄酒瓶数(?1 000~1 000),葡萄酒的瓶数为正值表示买进,负值表示卖出。输入数据的最后以0间店面做结束。请输出最小运送成本。



★------------------★



输入

5

5 -4 1 -3 1

6

-1000 -1000 -1000 1000 1000 1000

0



★------------------★



★------------------★



输出

9

9000



★------------------★



  3. 解答

  由于居民之间没有买卖限制,所以从左侧开始可以简单地求出买卖成立的最低运送成本。以第一组测试数据来说,第一间店铺想买入5瓶葡萄酒,假设隔壁就有5瓶葡萄酒要卖,也需要5份的运送成本。因此,先把搬运成本设置成5。由于第二间店铺想卖出4瓶葡萄酒,所以让4瓶葡萄酒交易成立。

  总搬运成本加上剩下1瓶没有交易成功的运送成本变成6。第三间店铺想买入1瓶,所以至少需要1瓶的运送成本,因此,加上前面剩下还没有交易的1瓶,总共要加上2瓶的运送成本,这样就变成6 + 2 = 8。第四间店铺想卖出3瓶,所以其中2瓶的交易就成立了。剩下1瓶想卖出的葡萄酒就送到隔壁第五间店铺,需要加上1瓶的运送成本,最终结果就变成8
+ 1 = 9。

 

  如果稍微简单一点说,就是只要注意店铺间搬运葡萄酒的瓶数就可以了。所以用这种方法试着写一个基本代码:



-------------

#include<stdio.h>

double cost;
int a,b,n; main()
{
for(;scanf("%d",&n),n;)
{
cost=b=0; for(;n--;)
{
scanf("%d",&a); b+=a;
cost+=abs(b);
} printf("%.f\n",cost);
}
}

poj 1940 Wine Trading in Gergovia_贪心的更多相关文章

  1. UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟

    题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求 ...

  2. UVa 11054 Wine trading in Gergovia【贪心】

    题意:给出n个等距离的村庄,每个村庄要么买酒,要么卖酒,买酒和卖酒的总量相等, 把k个单位的酒从一个村庄运送到相邻的村庄,需要耗费k个单位劳动力,问怎样运送酒使得耗费的劳动力最少 买     卖    ...

  3. UVA - 11054 Wine trading in Gergovia (Gergovia 的酒交易)(贪心+模拟)

    题意:直线上有n(2<=n<=100000)个等距的村庄,每个村庄要么买酒,要么卖酒.设第i个村庄对酒的需求为ai(-1000<=ai<=1000),其中ai>0表示买酒 ...

  4. uva 11054 wine trading in gergovia (归纳【好吧这是我自己起的名字】)——yhx

    As you may know from the comic \Asterix and the Chieftain's Shield", Gergovia consists of one s ...

  5. [POJ 2586] Y2K Accounting Bug (贪心)

    题目链接:http://poj.org/problem?id=2586 题目大意:(真难读懂啊)给你两个数,s,d,意思是MS公司每个月可能赚钱,也可能赔钱,如果赚钱的话,就是赚s元,如果赔钱的话,就 ...

  6. UVa11054 Gergovia的酒交易 Wine trading in Gergovia-递推

    https://vjudge.net/problem/UVA-11054 As you may know from the comic “Asterix and the Chieftain’s Shi ...

  7. poj 2010 Moo University - Financial Aid (贪心+线段树)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 骗一下访问量.... 题意大概是:从c个中选出n个 ...

  8. poj 1328 Radar Installation (简单的贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42925   Accepted: 94 ...

  9. POJ 2370 Democracy in danger(简单贪心)

    Democracy in danger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3388   Accepted: 25 ...

随机推荐

  1. mysql 只给更新表的某个字段的授权

    mysql> create view v_Procuct as select sn,name from Product; Query OK, 0 rows affected (0.01 sec) ...

  2. Sort Colors 解答

    Question Given an array with n objects colored red, white or blue, sort them so that objects of the ...

  3. MassMutual Interview Questions

    Company MassMutual Date 30/09/15 Location Boston, MA Position Application Developer It's not a codin ...

  4. jQuery判断元素是否是隐藏的代码

    if($("#elem_id").is(":hidden")) { } 实例代码1: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC & ...

  5. Python关于eval与json在字典转换方面的性能比较

    背景介绍 因为python中有eval()方法,可以很方便的将一些字符串类型与字典等数据结构之间进行转换, 所以公司的数据处理同事在保存一些特殊数据时就直接将字典的字符串保存在数据库中. 在程序中读取 ...

  6. C#常用語法糖(Csharp Syntactic sugar)

    首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕不已,呵呵. 1.  ...

  7. WIN7 64位系统安装JDK并配置环境变量

    本文来自:http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html 工具/原料 JDK 方法/步骤   首先,下载JDK安装包,到官 ...

  8. sqlplus常用操作命令(转)

    SQL*PLUS 是Oracle提供的一个工具程序,它不仅可以用于测试,运行SQL语句和PL/SQL块,而且还可以用于管理Oracle数据库  1.启动sql*plus 为了使用sql*plus,必须 ...

  9. sql必知必会(第四版) 学习笔记二 视图

    本书用到的几个表的建表sql语句如下: --销售产品供应商 CREATE TABLE Vendors ( vend_id varchar(20) not null, vend_name varchar ...

  10. DNS,ARP,RARP,NAT,WINS的作用和区别

    DNS 域名服务系统,是将域名(比如www.cnblogs.com)转成ip地址.arp 地址转换协议,是将ip地址转成mac地址(物理地址,可用ipconfig /all查看).rarp从mac转到 ...