uva 11054Wine trading in Gergovia(算法效率--等价转换)

Posted konjac蒟蒻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 11054Wine trading in Gergovia(算法效率--等价转换)相关的知识,希望对你有一定的参考价值。

题意:N个等距村庄,买(>0)卖(<0)酒,供需平衡,运K则需K劳动力。问所需的最小劳动力。

解法:由于运出或运入1的都需经过2,所以无论如何,都可以等价于从2本身运入或运出。因此可以将1和2合并,2一定要运a1(小心:确保 i 的劳动力消耗量是由 i 之前,即 i-1 得到的),记a1+a2为现在自己的所需量。其他同理。

注意——理清关系,算劳动力时要用绝对值。

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 using namespace std;
 6 typedef long long LL;
 7 
 8 LL mabs(LL x) {return x>0?x:-x;}
 9 int main()
10 {
11     int n;
12     while (1)
13     {
14       scanf("%d",&n);
15       if (!n) break;
16       LL x,last=0,ans=0;
17       for (int i=1;i<=n;i++)
18       {
19         scanf("%lld",&x);
20         ans+=mabs(last);
21                 last+=x;
22       }
23       printf("%lld\n",ans);
24     }
25     return 0;
26 }

 

以上是关于uva 11054Wine 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(算法效率--等价转换)

UVA 11054 Gergovia的酒交易 Wine trading in Gergovia

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