zoukankan      html  css  js  c++  java
  • csuoj 1350: To Add Which?

    这个题目其实很简单,可惜当时比赛的时候看到出的人少,以为有trick,就和队友扯淡去了;

    因为每个数总是被相邻的数影响,所以往前往后扫两遍就行了;

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #define maxn 100005
     5 using namespace std;
     6  
     7 int num[maxn];
     8 int num1[maxn];
     9 int num2[maxn];
    10  
    11 int main()
    12 {
    13     int t;
    14     int n,d;
    15     scanf("%d",&t);
    16     while(t--)
    17     {
    18         long long ans=0;
    19         scanf("%d%d",&n,&d);
    20         for(int i=0;i<n;i++)
    21         {
    22             scanf("%d",&num[i]);
    23         }
    24         num1[0]=num[0];
    25         num2[n-1]=num[n-1];
    26         for(int i=1;i<n;i++)
    27         {
    28             if(num1[i-1]-num[i]>d)
    29                 num1[i]=num1[i-1]-d;
    30             else num1[i]=num[i];
    31         }
    32         for(int i=n-2;i>=0;i--)
    33         {
    34             if(num2[i+1]-num[i]>d)
    35                     num2[i]=num2[i+1]-d;
    36             else num2[i]=num[i];
    37         }
    38         for(int i=0;i<n;i++)
    39         {
    40             ans+=max(num1[i],num2[i])-num[i];
    41         }
    42         printf("%lld
    ",ans);
    43     }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    # 类和模板小结
    # Clion复制提示信息
    # IDEA相关知识
    # MySQL 笔记
    # MATLAB笔记
    # Mac地址
    # 丢包&&掉帧&&文件删除
    HDU 5744 Keep On Movin
    POJ 1852 Ants
    HDU 2795 Billboard
  • 原文地址:https://www.cnblogs.com/yours1103/p/3470232.html
Copyright © 2011-2022 走看看