A

让 \(c\) 保存数组中所有最大的数,如果所有数都相等则 \(-1\)。

B

只需要记录每个序列的最小值和次小值,然后对次小值求前后缀和。

C

枚举最大值 \(mx\),然后遍历 \(i:n\sim 1\)。对于 \(i\),取最大数 \(x\) 满足 \(x\) 未选且 \(i\times x \le mx\)。

证明:假设 \(i\) 原本与 \(x\) 匹配,现在与 \(x1\) 匹配,显然 \(x1<x\),否则 \(i\cdot x1>mx\);\(x\) 与 \(i1\) 匹配,\(i1<i\) 因为更晚选。交换 \(x,x1\) 后总和增加 \((i-i1)(x-x1)>0\),并且此时最大值依旧为 \(mx\)。

D

将每个 \(b_i,x_j,l_i\) 视作一个 “事件” 存到数组里,按坐标排个序,从最右边的位置向左遍历,在数轴上做类似扫描线的操作。(扫描点?)

定义 \(ans_i\) 为第 \(i\) 条线段最远能跳多远,\(p_j\) 为询问 \(x_j\) 的答案,显然 \(p_j=\max(x_j,ans_i|l_i\le x_j\le r_i)\)。

如果当前遇到了一个 \(b_i\),更新 \(ans_i\) 为当前集合中所有 \(ans\) 的最大值(最靠右的),同时把 \(ans_i\) 加入集合中。

如果当前遇到了一个 \(x_j\),更新 \(p_j\) 为当前集合中所有 \(ans\) 的最大值,再和 \(x_j\) 取 \(\min\)。

如果当前遇到了一个 \(l_i\),从集合中删除 \(ans_i\)。

可以用 set 维护。

E

\(dp[i][j]\) 表示前 \(i\) 个数里选的区间长度和为 \(j\) 的最大价值。

\(dp[i][j]=\max(dp[i-1][j],dp[i-l][j-l]+cost(i-l+1,i)|1\le l\le j).\)

\(cost(i-l+1,i)\) 就是区间 \([i-l+1,i]\) 的价值。

观察发现 \(cost(l,r)=|b_l-a_r|+|b_r-a_l|\) 始终等于 \(\max(b_l-a_r+b_r-a_l,-b_l+a_r+b_r-a_l,b_l-a_r-b_r+a_l,-b_l+a_r-b_r+a_l).\)

同时,我们发现 \(dp\) 值之间只有 \(i-j\) 不变才能更新。

我们可以维护四个数组:\(mn1[x],mx1[x],mn2[x],mx2[x]\),分别表示要求 \(i-j=x\) 时,\(-dp[i][j]+b_i+a_i\) 的最小值,\(dp[i][j]+b_i+a_i\) 的最大值,\(-dp[i][j]+b_i-a_i\) 的最小值,\(dp[i][j]+b_i-a_i\) 的最大值。

然后我们求 \(dp[i][j]\) 的时候,就可以根据 \(i-j\) 调用四个数组,根据上面 \(cost\) 的公式加减一下,四种情况都取 \(\max\)。大幅优化。

F

随机推荐

  1. md文件的基本常用编写语法

    md简介 .md即markdown文件的基本常用编写语法,是一种快速标记.快速排版语言,现在很多前段项目中的说明文件readme等都是用.md文件编写的,而且很多企业也在在鼓励使用这种编辑方式.下面就 ...

  2. Linux系列之文件和目录权限

    前言 我们知道,root用户基本上可以在系统中做任何事.其他用户有更多的限制,并且通常被收集到组中.你把有类似需求的用户放入一个被授予相关权限的组,每个成员都继承组的权限. 让我们看一下: 查看权限( ...

  3. MoeCTF 2023(西电CTF新生赛)WP

    个人排名 签到 hello CTFer 1.题目描述: [非西电] 同学注意: 欢迎你来到MoeCTF 2023,祝你玩的开心! 请收下我们送给你的第一份礼物: https://cyberchef.o ...

  4. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.26)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  5. Mygin实现动态路由

    本篇是Mygin的第四篇 目的 使用 Trie 树实现动态路由解析. 参数绑定 前缀树 本篇比前几篇要复杂一点,原来的路由是用map实现,索引非常高效,但是有一个弊端,键值对的存储的方式,只能用来索引 ...

  6. 凡是有但是-varchar和nvarchar的初步学习之一

    凡是有但是-varchar和nvarchar的初步学习之一 背景 高应用开发, 在涉及到国内国外的问题时,重要的事情有两个: 时区转换, 字符集转换. 时区转换虽然是很难理清楚, 各种规范不统一的事情 ...

  7. pgcacher 的简单学习

    pgcacher 的简单学习 学习地址 https://github.com/rfyiamcool/pgcacher https://zhuanlan.zhihu.com/p/551833981 ht ...

  8. [转帖]被误解的CPU利用率、超线程、动态调频 —— CPU 性能之迷 Part 1

    https://blog.mygraphql.com/zh/notes/hw/hyper-threading/ 引 性能测试.压力测试.业务系统性能容量评估.这 3 件事,可以认为是大部分程序员/软件 ...

  9. [转帖]Linux下清理内存和Cache方法见下文:

    https://www.cnblogs.com/the-tops/p/8798630.html 暂时目前的环境处理方法比较简单: 在root用户下添加计划任务: */10 * * * * sync;e ...

  10. [转帖] 常见的Socket网络异常场景分析

    https://www.cnblogs.com/codelogs/p/16001770.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 在目前微服务的 ...