zoukankan      html  css  js  c++  java
  • UVA 11054 Gergovia的酒交易 Wine trading in Gergovia

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

    首先考虑第一个村庄,首先他本身一定会用|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
    ",ans);
        }
    }
  • 相关阅读:
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS01-线性表
    c博客06-结构体&文件
    C博客作业05--指针
    123
    面向对象设计大作业
    购物车
    有理数类的设计
  • 原文地址:https://www.cnblogs.com/coder-cjh/p/11617000.html
Copyright © 2011-2022 走看看