UVA11054 Wine trading in Gergovia
Posted fy1999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA11054 Wine trading in Gergovia相关的知识,希望对你有一定的参考价值。
题目大意:有N户人家住在一条街上,每户人家有需求和供应葡萄酒, 因为路程的不同,导致交易葡萄酒的成本不同,成本等于交易量乘路程,求最少的交易成本使得每户人家的需求和供应的到满足,(总需求= 总供应)。
解题思路:贪心的思想, 最左边的人家想要获得或者是卖出,一定是对右边的人家进行操作,所以问题可以转化成第二家人的需求变成num[0] + num[1], 而运输量即为num[0]的绝对值,不管第二户人家的需求与第一户人家的需求是否匹配或者数量够不够,都可以看成是人家1在买卖过程中将货物暂时放在人家2,以此类推到最后一户人家。
注意总和要用long long 。
#include <iostream> #include <cmath> using namespace std; const int maxn=1e5+10; int n; int main() { ios::sync_with_stdio(false);cin.tie(0); while(cin>>n&&n!=0) { long long last=0,ans=0,x; for(int i=0;i<n;i++){ cin>>x; ans+=abs(last); last+=x; } cout<<ans<<endl; } return 0; }
以上是关于UVA11054 Wine trading in Gergovia的主要内容,如果未能解决你的问题,请参考以下文章
UVA 11054 Wine trading in Gergovia(思维)
UVA11054 Wine trading in Gergovia
UVa 11054 Wine Trading in Gergovia 题解 + 算法分析
uva 11054Wine trading in Gergovia(算法效率--等价转换)