首页 > 其他分享 >刷题总结

刷题总结

时间:2024-11-27 21:45:00浏览次数:5  
标签:总结 10 le times 序列 区间 dp 刷题

同步于Luogu bolg

题单

T1 AT_arc174_a A Multiply

题意简化

有一个长度为\(n\)的序列\(a\),你可以选择一个区间,让区间离的数全部\(\times c\),求\(a\)序列的最大值。

  • $ 1\ \le\ N\ \le\ 3\ \times\ 10^5 $
  • $ -10^6 \ \le\ C\ \le\ 10^6 $
  • $ -10^6 \ \le\ A_i\ \le\ 10^6 $

分析

观察数据范围,可发现\(c\)有正负之分,则想要让序列总长度最大,分类讨论:

  • \(c<0\),则需要使用最小的区间\(\times c\)
  • \(c>0\),则用最大的区间\(\times c\)
  • \(c=0\),则使用最小的区间\(\times c\)

所以要求两个东西:区间最大最小值
发现\(1\le n\le 10^5\),考虑DP

  1. 定义状态:\(dp_i \ or \ pd_i\):以\(i\)结尾的区间最大/最小值
  2. 答案:\(\max{dp_i}\ or \ \min{pd_i}\)
  3. 状态转移方程:由于区间是连续的,所以\(dp_i\)的状态只能由\(dp_{i-1}\)得到
    对于每个\(dp_i\):
    一.由\(dp_{i-1}+a_i\),得到新的子段和
    二.自己单独成一个子段
    得出\(dp_i=\max(dp_{i-1}+a_i,a_i)\)
    \(pd\)同理
  4. 边界条件:\(dp\)设极小值,\(pd\)设极大值

DP值求完了,接下来计算总序列和:

  • \((c>0)\)
    一.序列不变,因为可能序列全是负数,乘后还变小了
    二.减去区间最大值,再加上区间最大值\(\times c\)
  • \((c\le 0)\)
    一.序列不变,因为可能序列全是正数,乘后还变小了
    二.减去区间最小值,再加上区间最小值\(\times c\)

Code

link

标签:总结,10,le,times,序列,区间,dp,刷题
From: https://www.cnblogs.com/OIer-QAQ/p/18573175/problem_ykm

相关文章

  • 刷题记录 11 月合集
    刷题记录11月合集没啥时间记录了,趁着考NOIP前还有空赶紧记一下。P1081NOIP2012提高组开车旅行先考虑暴力,每个点预处理出\(i\simn\)中距离自己第一近和第二近的点(set或平衡树找排名在\([rk_i-2,rk_i+2]\)中的点),然后对于每个\(i\)不断向后依次跳,直到结束,即可解......
  • 数据结构——排序算法分析与总结
    排序算法是数据结构中的重要内容,用于将一组数据按照特定的顺序(如升序或降序)进行排列。以下是对常见排序算法的分析与总结:1.冒泡排序(BubbleSort)基本原理:它是一种比较简单的排序算法。通过反复比较相邻的两个元素,如果顺序错误(如在升序排序中,前面的元素大于后面的元素),则交......
  • stl用法总结
    vector头文件#include<vecotr>声明vector<int>a;vector<int>b[233];structrec{...};vector<rec>c;函数调用.size()返回vector数组的长度.empty()若为空,则返回1,否则返回0;.begin()/.end()返回指向第一个/最后一个元素的迭代器.front()/.back()返回第一个/最后......
  • 【C语言的奥秘6】函数知识点总结最全
    一、什么是函数程序是由多个零件组合而成的,而函数就是这种“零件”的一个较小的单位。也可以叫子程序。在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一般会有输入参数并有返回值,......
  • 测试面试题总结
    功能抓包APPUI自动化项目:项目流程,如何排期测试流程,项目周期项目流程中的问题介绍项目核心功能,如何设计用例熟悉或最近的项目,业务功能,和负责部分,如何进行测试业务测试除了功能上还有其他方面的逻辑测试吗项目最近发版时间开发技术评审发现了什么问题开发逻辑讲......
  • 总结一下目前使用moviepy遇到的问题
    我的moviepy版本是1.0.21·有时在movipy输出文件时报错‘NoneType’objecthasnoattribute'stdout’问题。原因是保存了一个clip后,使用了close函数将clip对象关闭。我的解决方法是:删除moviepy库文件下的audio\io子目录下AudioFileClip.py的析构方法__del__2·还有个就......
  • # 鸿蒙Flutter 常见问题总结
    鸿蒙Flutter常见问题总结dart代码中判断当前平台是否是ohosimport'package:flutter/foundation.dart';boolisOhos(){returndefaultTargetPlatform==TargetPlatform.ohos;}代码中存在Platform.isOhos会导致fluttnrun、flutterbuildhar、flutterattach失败问......
  • tree-picker和grid-picker使用问题总结
    tree-picker组件使用举例表格型:示例图点击查看代码<el-form-itemlabel="基础参数定义:":label-width="formLabelWidth"prop="fkCulateParamDef"><grid-picker:tableColumn="fkCulateParamDefColumn":modelValue="form&q......
  • 洛谷刷题日记12||图的遍历
    反向建边+dfs按题目来每次考虑每个点可以到达点编号最大的点,不如考虑较大的点可以反向到达哪些点循环从N到1,则每个点i能访问到的结点的A值都是i每个点访问一次,这个A值就是最优的,因为之后如果再访问到这个结点那么答案肯定没当前大了#include<iostream>#include<cst......
  • 指针测试总结(一)(一维数组)
    1.取一维数组的首地址intmain(){intarr[3]={5,8,1};printf("%d\n",arr);printf("%d\n",&arr);printf("%d\n",&arr[0]);printf("%d\n",&arr+0);}输出结果:1096809108109680910810968091081......