码迷,mamicode.com
首页 > Windows程序 > 详细

UVA 11054 Gergovia的酒交易 Wine trading in Gergovia

时间:2019-10-02 12:45:35      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:amp   wine   转化   pac   一个   劳动力   via   uva   win   

一道思维题,主要用到的方法是思路转化。

首先考虑第一个村庄,首先他本身一定会用|a[1]|的劳动力

  1. a[1]>0 那么2村庄一定要花a[1]的劳动力来运输,也就是需要a[1]+a[2]的劳动力
  2. a[1]<0 那么2村庄就已经有-a[1]瓶酒,就可以不用去买了,也就是a[2]-(-a[1])=a[1]+a[2]

综上,我们通过扫描法来记录前几个村庄带给这个村庄的酒,累加劳动力就好了

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    while(~scanf("%d",&n)&&n){
        long long a,ans=0,last=0;//不开LL见祖宗
        for(int i=1;i<=n;i++){
            scanf("%lld",&a);
            ans+=abs(last);//取绝对值是因为劳动力为正
            last+=a;//加上这一次的劳动力
        }
        printf("%lld\n",ans);
    }
}

 

UVA 11054 Gergovia的酒交易 Wine trading in Gergovia

标签:amp   wine   转化   pac   一个   劳动力   via   uva   win   

原文地址:https://www.cnblogs.com/coder-cjh/p/11617000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!