这个题目其实很简单,可惜当时比赛的时候看到出的人少,以为有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\n",ans);
43     }
44     return 0;
45 }

View Code

转载于:https://www.cnblogs.com/yours1103/p/3470232.html

csuoj 1350: To Add Which?相关推荐

  1. YQ11-25 作业

    /* 作业1 集合方式实现统计金额 流对象实现统计金额 */ /*对象封装*/ public class Firm {private String title;private String no;pr ...

  2. ArrayList add(int index,E element)

    ArrayList  add(int index,E element) add(E e)方法的代码 1 /** 2 * Appends the specified element to the end ...

  3. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  4. Docker 入门系列(7)- Dockerfile 使用(FROM、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、WORKDIR)

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 来快速创建自定义的镜像. 1. 基本结构 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. ...

  5. git add . 之后 想执行回滚操作(git add 到本地仓库的代码回滚到没有add 之前的操作)

    git add 到本地仓库的代码回滚到没有add 之前的操作 ,如果git 非常熟悉临时忘记了命令 回滚单个文件的命令:git restore --staged  xx文件名 回滚所有add 的文件直 ...

  6. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”

    make 编译android代码的出现这样的错误 这个问题可能是跟android 的版本有关系就是xml 中的String.xml文件的文字使用%s 无法识别引起的, 不过有些版本可以识别 下面的就有 ...

  7. Kotlin 使用list.add 时候报错的处理方法

    在Kotlin 中 使用list.add 方法的时候出现报错例如下面的现象 这个时候处理的方法就是把List 更换为MutableList 这样就不会报错了 下面是处理之后的.

  8. Can't add more than 2 views to a ViewSwitcher

    最近使用到  TextSwitcher 来实现文字上下轮播的效果,出现了 Can't add more than 2 views to a ViewSwitcher 看了下源码 /*** {@inhe ...

  9. List 数据add进去的是一个bean 的时候删除数据的方法

    这个时候要删除数据,也是用到add 进 list 里面的bean 然后使用for 循环对应里面的数据的方法 例如: selectList.remove(findSeatInfoBean(xx, xx) ...

最新文章

  1. 使用BlazeDS实现Java和Flex通信之hello world
  2. pythonifnotnone_python中if not x: 和 if x is not None: 和 if not x is None的使用和区别
  3. 在WCF中的异常处理方法
  4. 论文笔记_SLAM_Visual SLAM and Structure from Motion in Dynamic Environments A Survey
  5. Python 编程总结
  6. 2021年上半年系统集成项目管理工程师上午真题及答案解析
  7. matlab语法总结
  8. Android入门,android基础开发
  9. Android手机应用开发(一) | 基本的UI界面设计
  10. python 百度脑图json数据转Excel
  11. mac android 文件管理器,PC和Mac浏览安卓手机上文件最快的方式,只需两步
  12. CocosCreator接入穿山甲SDK(IOS)--激励视屏
  13. 自动复制吱口令html,解密!手机自动复制“吱口令”“淘口令”陷阱,罪魁祸首就是它!...
  14. iOS开发三方资源 - 欲先攻其事必先利其器
  15. 计算机专业顶级学术会议
  16. uni-app前端H5页面底部内容被tabbar遮挡的问题解决方案
  17. 易语言传文本到c 崩溃,win7系统易语言打开支持库配置就崩溃的解决方法
  18. 关键点检测项目代码开源了!
  19. 12款群岛部落风格lut预设Tribe Redleaf Flint Steel
  20. 深入体验了4大知名BI分析工具,终于找到了最适合我们公司的一款

热门文章

  1. Python Django 全局上下文代码示例
  2. 一个栈输入序列为1,2,3,4,5,则下列序列中不可能是栈的输出序列是?
  3. JDBC的CRUD操作之PreparedStatement的修改操作
  4. MySQL使用用户变量需确定取值的顺序
  5. Iterator迭代器并发修改异常问题解决
  6. php无刷新实现页面更新,使用laravel和ajax实现整个页面无刷新的操作方法
  7. Centos 7下查看当前目录大小及文件个数
  8. Qt C++模版函数示例
  9. 前后台json交互,以及数据库json转换——PHPThinkphp5.1
  10. 最好用的微型计算机,《微型计算机原理及应用》试题及答案 好