在一条街上有许多房屋,每间屋子里都住着人,并且都是做葡萄酒生意的商人,他们每天都要决定买卖多少瓶葡萄酒。有趣的地方是,供需总是完美地一致。商人总是能买到自己需要的葡萄酒,并且,他们从来不介意是从哪个商人那里购入的,只要求葡萄酒的搬运时间越少越好。如果把一瓶葡萄酒搬运到隔壁的成本是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. WPF笔记(1.1 WPF基础)——Hello,WPF!

    原文:WPF笔记(1.1 WPF基础)--Hello,WPF! Example 1-1. Minimal C# WPF application// MyApp.csusing System;using ...

  2. HTML5 Canvas Cheat Sheet

    HTML5 Canvas Cheat Sheet HTML5 Canvas Cheat Sheet v1.x

  3. 多线程并发 synchronized对象锁的控制与优化

    本文针对用户取款时多线程并发情境,进行相关多线程控制与优化的描述. 首先建立用户类UserTest.业务操作类SynchronizedTest.数据存取类DataStore,多线程测试类MultiTh ...

  4. 监控父元素里面子元素内容变化 DOMSubtreeModified

    1监控ul的li的变化情况,并实时输出li的长度 布局: <ul id="isSelected"></ul> <span id="modal ...

  5. Unity Easy Save简单实用

    Easy Save使用: 1.保存游戏进度        2.设计游戏关卡(怪物数量,坐标,背景图等等) Easy Save默认存储地址: C:\Users\Administrator\AppData ...

  6. SHDP--Working With HBase(一)之基本介绍

    最近在做web项目使用到了Hadoop,HBase,在这里对Spring For Hadoop(SHDP)的使用做个总结,主要使用了SHDP中提供的一些封装好的HBase模块. Spring For ...

  7. Android系统Surface机制的SurfaceFlinger服务的线程模型分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8062945 在前面两篇文章中,我们分析了Sur ...

  8. ASCII码表完整版

        ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 SOH 33 ! 65 A 97 a ...

  9. 关于Oracle SQL/82标准和SQL/92标准

    在ORACLE9i之前,oracle语法基础是SQL/86标准,9i及之后的版本中支持SQL/92标准.基表信息:products.purchases和product_types SQL> se ...

  10. js判断是否为ie的方法

    原文:http://blog.sina.com.cn/s/blog_7bbe4a850100v95z.html 下面第三种亲测可用 第一种: if(window.addEventListener){ ...