UVa 11054 Wine trading in Gergovia
题意:
直线上有n个等距的酒庄,每个酒庄对酒的需求量为ai(正数说明需要买酒,负数需要卖酒),而且保证所有的酒庄供需平衡。
搬运x个单位的酒到相邻的酒庄需要x个劳动力,求要使所有酒庄供需平衡最少需要多少劳动力。
分析:
第一个酒庄要买a1个单位的酒,那么这些酒可能是直接由第二个酒庄生产的,也可能是其他酒庄运到第二个酒庄的。
但最终一定有a1个 劳动力把酒从酒庄2运到酒庄1.
于是,问题就转化为:
有2~n这些酒庄,酒庄2的需求量为a1+a2,其他酒庄的需求量还是ai。且已经使用了|a1|个劳动力,求还需最少劳动力。
其实,无论正数负数都符合这个转化。
于是,我们边读边算就可以了。
因为数据量比较大,于是我机(wei)智(suo)地用了个输入挂,果然快了很多。
#include <cstdio>
#include <cmath> long long Scan() { //输入外挂
int res = , flag = ;
char ch;
if((ch = getchar()) == '-') flag = ;
else if(ch >= '' && ch <= '') res = ch - '';
while((ch = getchar()) >= '' && ch <= '')
res = res * + (ch - '');
return flag ? -res : res;
} int main()
{
//freopen("in.txt", "r", stdin); int n;
while(scanf("%d", &n) == && n)
{
getchar();
long long ans = , last = ;
int a;
for(int i = ; i < n; ++i)
{
a = Scan();
ans += std::abs(last);
last += a;
} printf("%lld\n", ans);
} return ;
}
代码君
UVa 11054 Wine trading in Gergovia的更多相关文章
- UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟
题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求 ...
- 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 ...
- UVa 11054 Wine trading in Gergovia【贪心】
题意:给出n个等距离的村庄,每个村庄要么买酒,要么卖酒,买酒和卖酒的总量相等, 把k个单位的酒从一个村庄运送到相邻的村庄,需要耗费k个单位劳动力,问怎样运送酒使得耗费的劳动力最少 买 卖 ...
- UVA 11054 Wine trading in Gergovia(思维)
题目链接: https://vjudge.net/problem/UVA-11054 /* 问题 输入村庄的个数n(2=<n<=100000)和n个村庄的数值,正代表买酒,负代表卖酒,k个 ...
- UVA - 11054 Wine trading in Gergovia 扫描法
题目:点击打开题目链接 思路:考虑第一个村庄,如果第一个村庄需要买酒,那么a1>0,那么一定有劳动力从第二个村庄向第一个村庄搬酒,这些酒可能是第二个村庄生产的,也可能是从其他村庄搬过来的,但这一 ...
- UVA - 11054 Wine trading in Gergovia (Gergovia 的酒交易)(贪心+模拟)
题意:直线上有n(2<=n<=100000)个等距的村庄,每个村庄要么买酒,要么卖酒.设第i个村庄对酒的需求为ai(-1000<=ai<=1000),其中ai>0表示买酒 ...
- 【例题 8-5 UVA - 11054】Wine trading in Gergovia
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑第一个店. 如果它要酒的话,只能从第二个店那里运过来. 这样,问题就转化成后n-1个店的问题了. 然后会发现,第二家店它的情况也 ...
- 【uva 11054】Wine trading in Gergovia(算法效率--等价转换)
题意:N个等距村庄,买(>0)卖(<0)酒,供需平衡,运K则需K劳动力.问所需的最小劳动力. 解法:由于运出或运入1的都需经过2,所以无论如何,都可以等价于从2本身运入或运出.因此可以将1 ...
- 8-5 Wine trading in Gergovia Gergovia的酒交易 uva11054
等价转换思维题 题意: 直线上有n(2<=n<=100000)个等距的村庄 每个村庄要么买酒 要么卖酒 设第i个村庄对酒的需求量为ai 绝对值小于一千 其中ai大于0表示买酒 ...
随机推荐
- C#网络通信
Server: using System.Net; using System.Net.Sockets; using System; using System.Collections.Generic; ...
- delphi 自带报告内存泄漏
//报告内存泄漏 ReportMemoryLeaksOnShutdown := true;
- 做了codility网站上一题:CountBoundedSlices
在写上一随笔之前,在Codility网站上还做了一个道题(非Demo题):CountBoundedSlices,得了60分(害臊呀).今天又重新做了一下这个算法,性能提高了不少,但由于此题不是Demo ...
- Spark Streaming揭秘 Day20 动态Batch size实现初探(上)
Spark Streaming揭秘 Day20 动态Batch size实现初探(上) 今天开始,主要是通过对动态Batch size调整的论文的解析,来进一步了解SparkStreaming的处理机 ...
- SelectedValue,SelectedValuePath,SelectedValueBinding,DisplayMemberPath讲解
无论在Winform.WPF.ASP.NET中,数据绑定是我们经常使用的一个重要技术,我们经常会把相关类动态显示绑定到UI界面中,其中有几个比较重要的属性需要大家灵活运用. 那Combox来说明有两个 ...
- oracle 将科学计数法数据转换为非科学计数法数据
oracle 自定义函数: CREATE OR REPLACE FUNCTION ConvertNumeric(rawData VARCHAR2) --用于返回转换科学计算法dhx RETURN VA ...
- 区间型动规--石子归并(Pascal)
题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使 ...
- 判断webpart类型 How can I tell what type a web part is?
using(new SPSite("http://mysite/myweb").OpenWeb()){ //give relative path of the webpartpag ...
- HelloWorld和数据绑定
HelloWorld和数据绑定 目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. An ...
- 在系统方法中调用navigationController的标准写法
在系统方法中调用navigationController的标准写法 -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animat ...