首页 > 其他分享 >题目思考过程简记

题目思考过程简记

时间:2024-03-26 23:15:27浏览次数:21  
标签:题目 题解 最小值 链接 简记 思考 考虑 我们

ARC 175 C 题解

题目链接

我们考虑经典套路,假设前 \(i - 1\) 个数已经被确定。

设 \(f_k(x)\) 表示 \(a_k = x\) 时 \(\sum_{i = k + 1}^n | \ a_i - a_{i - 1} \ |\) 的最小值。

那么,\(a_i = x\) 当且仅当 \(x\) 取最小值且 \(| \ x - a_{i - 1} \ | + f_i(x)\) 为所有可能中的最小值。

我们设集合 \(I_k = \operatorname{argmin}_{x \in [l_k, r_k]} f_k(x)\)。

一个奇妙性质:\(I_k\) 一定是一个区间。

感性理解。容易发现 \(f_k\) 是一个凸函数,所以当取到最小值时,取值定为一个区间。


我们考虑 \(f_k(x)\) 怎么求。

丁真一下。我们可以考虑直接贪心。若 \(a_i = p\),则 \(a_{i + 1}\) 取 \(\operatorname{argmin}_{x \in [l_k, r_k]} | \ x - p \ |\)。然后转移还是比较简单的。

我们设 \(m_k = \min_{x \in [L_k, R_k]}\{f_k(x)\}\):

\[f_k(x) = \begin{cases} m_{k+1} + l_k - x & (x < l_k)\\ m_{k+1} & (x\in [l_k, r_k])\\ m_{k+1} + x - r_k & (r_k < x) \end{cases} \]

以上贪心可以通过大力分讨得证。但是这一眼正确吧。

那么我们观察 \(f_k(x)\) 的转移式,发现最小值是非常能确定的。于是得到下列结论:

  • 如果 \([L_k, R_k] \cap I_{k+1} \neq \emptyset\),则 \(I_k = [L_k, R_k] \cap I_{k+1}\)。
  • 如果 \(R_k < l_{k + 1}\),则 \(I_k = R_k\)。
  • 如果 \(L_k > r_{k + 1}\),则 \(I_k = L_k\)。

综上,我们求出了 \(I\)。\(f\) 实际上不需要求出。


回到原题。我们要找到 \(x\) 使 \(x\) 取最小值且 \(| \ x - a_{i - 1} \ | + f_i(x)\) 为所有可能中的最小值。

仍然是大力分讨:

  • \(a_{i - 1} \in I_i\) 时,\(a_i = a_{i - 1}\)。

  • \(L_i \leq a_{i - 1} < l_i\) 时,\(a_i = a_{i - 1}\)。

  • \(a_{i - 1} < L_i\) 时,\(a_i = l_i\)。

  • \(a_{i - 1} > r_i\) 时,\(a_i = r_i\)。

发现上述过程可以简化为 \(a_i\) 取 \([L_i, r_i]\) 中最靠近 \(a_{i - 1}\) 的值。

CF1946E 题解

题目链接

首先发现左右两部分是比较独立的,所以可以分开计算后合并。

注意到我们可以把整个数集分成左右两部分,即 \(\binom{n - 1}{p_{m1} - 1}\)。

然后我们不妨只考虑左边。

发现左边的最大值也已经确定,且最大值右边的所有数可以随便选,即 \(\binom{p_{i + 1} - 2}{p_i - 1}\)。

由于内部需要换顺序,所以还要乘上 \((p_{i + 1} - p_i - 1)!\)。

右边同理。最后的答案即为全部的乘积。

CF1923E 题解

题目链接

考虑记录每一个点 \(i\) 离他最远的一个祖先使得祖先到 \(i\) 的路径上没有 \(a_i\)。设他为 \(\text{lst}_i\)。然后如果两个 \(u, v\) 的 \(\text{lst}\) 相等,那么这条路径就是好的。每种颜色枚举即可。

KEL 题解

题目链接

我们考虑一个点,它的权值 \(a_i\) 在区间 \([l_i, r_i]\) 内时,我们把 \(f_i\) 标记为 \(1\)。此时,符合条件的 \(i\) 点要满足在 \(i\) 子树内的所有 \(v\),他的 \(f_v = 1\)。

于是我们可以维护一颗线段树,线段树的值表示 \([l, r]\) 区间内有多少 \(f_i = 0\) 的数。

如果当前修改了 \(x\) 的权值导致 \(a_i\) 是否合法的状态更改,那么可以把 \(1\) 到 \(x\) 的简单路径上所有点 \(+1\)。用一个标记永久化的线段树再套一个树链剖分即可。

标签:题目,题解,最小值,链接,简记,思考,考虑,我们
From: https://www.cnblogs.com/aemmprty/p/18097876

相关文章

  • 聊聊多模态大模型处理的思考
    转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote多模态:文本、音频、视频、图像等多形态的展现形式。目前部门内业务要求领域大模型需要是多模态——支持音频/文本。从个人思考的角度来审视下,审视下多模态大模型的实现方式。首先就要区分输入与输出,即输入的模态与输出......
  • PTA基础编程题目集 6-10 阶乘计算升级版
    阶乘计算升级版本题要求实现一个打印非负整数阶乘的函数。函数接口定义:voidPrint_Factorial(constintN);其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalidinput”。裁判测试程序样例:#include<stdio.h>......
  • 华为OD机试 - 2024真题目录
    真题目录专栏介绍100分题目录200分题目录专栏介绍专栏中的所有博客均有详细的题目描述、输入、输出、测试使用、备注等描述,有算法源码可直接使用,计划每道题目的源码有Python、C++、C、javascript等,持续更新最新题目、不同语言的解答方法,目前Python源码居多。100分......
  • 自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程软件工程2024(广东工业大学)这个作业要求在哪里结对项目这个作业的目标学习完成项目的过程正文一、姓名、学号、GitHub本次项目缺失队友,由个人完成。崔海源3122004779github地址二、PSP表格PSP2.1PersonalSoftwareProcessStag......
  • c语言编程题目:水仙花数
    题目:水仙花数是指一个N位正整数(N>=3),它的每位上的数字的N次幂之和等于它本身。例如:153=1^3+5^3+3^3。要求:计算所有N位水仙花数。给出一个正整数N(3<=N<=7),按递增顺序输出所有水仙花数,每个数字占一行。编程思路分析:输入一个正整数N。N为位数,N=3就表明是3位数。判断N位......
  • 关于我对于计算机专业的思考与展望
    1.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)?我报考的时候是对计算机专业很有兴趣,所以选择了计算机专业,现在没有后悔选择了这个专业,可以通过编程实现很......
  • 每日面经分享(测试开发经典场景题目)
    1.面试测试场景题目,回答的测试点有哪些?a.功能测试点:确保所测试的功能按照设计要求正常工作。例如,对于电影票预订网站的座位选择功能,测试点可能包括选择连续座位、选择非连续座位、座位已售等情况。b.边界测试点:测试输入值的边界情况,以验证系统在极限条件下的表现。例如......
  • 简单mips题目尝试
    0x01前言mips是另一种不同的架构何指令集,推荐使用ghidra和ida插件进行反汇编,其中的知识我就不多赘述,因为我也一知半解Orz0x02简单的ctf题目尝试[UTCTF2020]babymips首先利用ghidra反汇编一下程序看看,按g可以跳转main函数看看 发现具体逻辑将一段东西赋值给austak_68,然......
  • 关于软件功能的思考--学习过程的胡思乱想
    小白一枚,最近在学MySQL和docker。为什么会思考这个问题呢?一来是还没找到工作有点闲,二来主感叹日常接触的软件有点无聊(可能是圈子太小。。。)。诱因是我问了AI一个问题:现代软件的功能有哪些?回答如下:1.数据处理和管理:软件可以用于存储、组织、检索和分析数据。2.用户界面:提供友......
  • Java语言程序设计实验题目:编写Java程序统计一篇英文文档中各单词出现的次数,并按单词出
    题目描述编写Java程序统计一篇英文文档中各单词出现的次数,并按单词出现的频率由高到低进行输出。例如:文档“HellowordHello”的统计结果为: Hello:2次 word:1次思路分析1.处理文档:先用nextLine()将文段输入,存储在字符串file,再调用split()方法将字符串分割成一个......