zoukankan      html  css  js  c++  java
  • 差分入门两题 ——ACwing100 递增序列

      此题重点在于区间加/减 ,且最终序列的特征是差值均为0,对一个区间加不影响中间的差值

      于是构差分数组,有:

      

       为了使得最终差分数组均为0(除了d[1]) ,我们应该贪心地选择[l,r]  ,这样一来,算出负数的和的绝对值,正数的和的绝对值,取最小值再加上绝对值的差的绝对值,就是需要操作的最少次数。(贪心)

       而最终可能的大小,也就是d[1]的可能大小,某个正数或者负数可以通过与d[1]或者d[n+1]配对,总共配对abs(z-f)次,与d[1]可能配对 0,1,2,3…abs(z-f) 次,所以d[1]的值有abs(z-f)+1次

       AC CODE:

      

    import java.math.BigInteger;
    import java.math.*;
    import java.io.*;
    import java.util.Scanner;
    
    public class Main{
        static  int maxn = 100000 + 5;
        static long a[] = new long [maxn];
        public static void main(String[] args){
            int T;
            int n;
            Scanner in = new Scanner (System.in);
            n = in.nextInt();
            long r,l;
            r = l = 0;
            for(int i = 0; i < n; i++){
                a[i]=in.nextLong();
                if(i > 0) {
                    if (a[i] - a[i - 1] > 0) l += a[i] - a[i - 1];
                    else r += a[i - 1] - a[i];
                }
            }
            System.out.println(Math.min(l,r)+Math.abs(l-r));
            System.out.println(1+Math.abs(l-r));
            in.close();
        }
    }
  • 相关阅读:
    CSS的三种定位方式介绍(转载)
    CSS背景颜色透明
    去除网页滚动条的方法
    es6
    Android复习
    caculater
    字符流
    字节流
    File类
    泛型继承
  • 原文地址:https://www.cnblogs.com/hznumqf/p/13190775.html
Copyright © 2011-2022 走看看