Hello 2024C. Grouping Increases(贪心、分类讨论)

我们只需要记录每个数结尾的数是多少(有点最长上升子序列的味道)
这种子序列的题目很多都是这样的,因为不需要连续很多时候我们只记录最后一个元素是多少。
记 s 为较大子序列结尾当前的数, t 为较小子序列结尾的数,下面分类讨论 记s为较大子序列结尾当前的数,t为较小子序列结尾的数,下面分类讨论 s为较大子序列结尾当前的数,t为较小子序列结尾的数,下面分类讨论

  1. 当 a [ i ] < = t < s 时 当a[i]<=t<s时 a[i]<=t<s我们将a[i]既可以放进t所在的子序列,也可以放在s所在的子序列,都不会对答案产生贡献,我们考虑放在哪个子序列可以让答案更有,显然a[i]与t的距离更近,如果我们放进s,那么如果后面出现[t,s]之间的数我们都会对答案产生贡献,如果我们放进t,后面出现[t,s]之间的数不会对答案产生贡献。所以这种情况我们把a[i]放进t所在的子序列并维护s,t。
  2. t < a [ i ] = < s 时 t<a[i]=<s时 t<a[i]=<s这时为了不使答案增加我们把a[i]放进s,维护s、t
  3. t < s < a [ i ] 时 t<s<a[i]时 t<s<a[i]这时无论放进t还是s都会对答案产生贡献,但是我们考虑具体放进哪个,显然放进t(更小的)是更优的,维护s、t
#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define ls p<<1
#define rs p<<1|1
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2e5+10;
void solve()
{int n;cin>>n;vector<int>a(n+1);rep(i,1,n)	cin>>a[i];int s=1e9,t=1e9,ans=0;rep(i,1,n){if(s<t)swap(s,t);if(a[i]>s)	{ans++;t=a[i];}if(a[i]<=t)	t=a[i];else	s=a[i];}cout<<ans<<endl;
}
signed main()
{IOS	
//  	freopen("1.in", "r", stdin);int _;cin>>_;while(_--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Symbol.toStringTag用法

Symbol.toStringTag 作用 对象上的Symbol.toStringTag属性用于对象toString类型标识 Symbol.toStringTag 解释 对象调用toString方法&#xff0c;如果这个属性存在&#xff0c;它的返回值会出现在toString方法返回的字符串之中&#xff0c;表示对象的类型。 webpack中也有使…

Spring面试

文章目录 Spring面试Spring框架用了什么设计模式&#xff1f;Spring Bean的作用域Spring如何解决循环依赖什么样的循环依赖无法处理构造方法注入 VS setter注入 Spring框架中有哪些不同类型的事件&#xff1f;AOP (Aspect Oriented Program) 切面编程IOC容器BeanFactory 与 App…

修改UnityEngine dll

修改UnityEngine dll 由于有些版本的dll与热重载并不兼容&#xff0c;需要小幅修改代码。 使用dnspy工具 我们使用 dnspy 来修改 dll文件。而dnspy只能在Win下运行&#xff0c;故哪怕是mac版本dll&#xff0c; 你也得先将相应dll复制到Win下后再修改。下载 dnspy&#xff0c…

FastAdmin青动CRM-E售后

应用介绍 一款基于FastAdminThinkPHP和uniapp开发的CRM售后管理系统&#xff0c;旨在助力企业销售售后全流程精细化、数字化管理&#xff0c;主要功能&#xff1a;客户、合同、工单、任务、报价、产品、库存、出纳、收费&#xff0c;适用于&#xff1a;服装鞋帽、化妆品、机械机…

服务器使用过程中遇到常见故障及解决方案(包括蓝屏死机、无法删除的文件如何清理、网络卡、服务器连接不上等)

互联网时代&#xff0c;服务器的安全性和稳定性尤为重要&#xff0c;支撑着整个互联网行业的信息和数据安全。最近经常有客户咨询服务器的日常故障排除方法。由于服务器复杂的硬件结构和繁琐的运行原理&#xff0c;经常会出现这样那样的问题&#xff0c;有时即使是最小的问题也…

item_get_video-获取视频详情(bili.item_get_video)

B站&#xff08;Bilibili&#xff09;的item_get_video API用于获取视频的详细信息。通过调用该API&#xff0c;您将能够获得视频的基本信息、元数据、播放链接等。这使得开发者可以轻松地将B站视频集成到自己的应用程序或网站中&#xff0c;为用户提供更丰富的内容和更好的体验…

机器学习本科课程 实验5 贝叶斯分类

实验1.使用sklearn的GaussianNB、BernoulliNB、MultinomialNB完成肿瘤预测任务 实验内容&#xff1a; 使用GaussianNB、BernoulliNB、MultinomialNB完成肿瘤预测计算各自十折交叉验证的精度、查准率、查全率、F1值根据精度、查准率、查全率、F1值的实际意义以及四个值的对比阐…

ObjectMapper之处理JSON序列化和反序列化

目录 基本示例Java 对象转 JSON 字符串&#xff08;序列化&#xff09;JSON 字符串转 Java 对象&#xff08;反序列化&#xff09; 高级特性忽略未知属性使用注解自定义序列化 当然可以。让我们通过更详细的例子来探索 ObjectMapper 的使用&#xff0c;包括基本的序列化和反序…

2-12 SDATR的训练与测试

2.12 SDATR的训练与测试 使用环境:3卡服务器SDATR 服务器代码地址:/home/lihuanyu/code/036SDATR 本地代码地址:F:\BaiduNetdiskDownload\code\036SDATR 2.12.1 训练文件修改 输入数据修改 载入词汇修改 短点保存修改 权重保存修改 其他位置修改:

springboot果蔬配送商城

技术架构&#xff1a; java mysql bootstrap jquery mybatis springboot 有需要该项目的小伙伴可以私信我你的Q。 功能介绍&#xff1a; 系统基于Java技术进行开发&#xff0c;后台数据库使用MySQL&#xff0c;在Windows环境下使用idea开发工具进行开发&#xff0c;主…

【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》

文章目录 1&#xff0c;问题提出2&#xff0c;输入URL过程用到的协议3&#xff0c;输入URL过程分析3.1&#xff0c;孤单小弟 - HTTP3.2&#xff0c;真实地址查询 - DNS3.2&#xff0c;指南好帮手 - 协议栈3.3&#xff0c;可靠传输 - TCP3.4&#xff0c;远程定位- IP3.5&#xf…

Ardupilot Chibios硬件启动初始化过程整理

ardupilot 的启动根据不同HAL 的启动过程不一样 &#xff0c; chibios 的硬件入口是 硬件启动 -> modules/Chibios/common/startup/ARMCMx/compilers/GCC/VECTOR.S ResetHandler: modules/Chibios/common/startup/ARMCMx/compilers/GCC/ crt0_v7m.S crt0_entry--AP_HAL_Chi…

陶哲轩如何用 GPT-4 辅助数学研究

关于陶哲轩&#xff08;Terence Tao&#xff09;用 GPT-4 进行数学研究的话题始于陶本人在 微软 Unlocked 上发表的 Embracing Change and Resetting Expectations 一文。文中提到&#xff1a; …… I could feed GPT-4 the first few PDF pages of a recent math preprint and…

[学习笔记]刘知远团队大模型技术与交叉应用L6-基于大模型文本理解和生成介绍

介绍 NLP的下游运用可以分为&#xff1a;NLU(理解)和NLG(生成) 信息检索&#xff1a;NLU 文本生成&#xff1a;NLG 机器问答&#xff1a;NLUNLG 大模型在信息检索 大模型在机器问答 大模型在文本生成 信息检索-Information Retrieval (IR) 背景 谷歌搜索引擎目前同时集成了…

【Ubuntu】安装filebeat

在Ubuntu系统上安装filebeat 1. 添加ElasticSearch的GPG密钥 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -2. 添加ElasticSearch的APT存储库 echo "deb https://artifacts.elastic.co/packages/oss-8.x/apt stable main"…

Docker 可视化工具

1、Portainer 概念介绍 Portainer是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 Portainer分为开源社区版&#xff08;CE版&#xff09;和商用版&#xff08;BE版/EE版&#xff09;。 Porta…

嵌入式学习第十六天!(Linux文件查看、查找命令、标准IO)

Linux软件编程 1. Linux&#xff1a; 操作系统的内核&#xff1a; 1. 管理CPU 2. 管理内存 3. 管理硬件设备 4. 管理文件系统 5. 任务调度 2. Shell&#xff1a; 1. 保护Linux内核&#xff08;用户和Linux内核不直接操作&#xff0c;通过操作Shell&#xff0c;Shell和内核交互…

idea常用设置

1、内存优化 根据自己电脑本身的内存&#xff0c;对idea安装包里bin目录下的idea64.exe.vmoptions文件进行修改 -server -Xms256m -Xmx2048m -XX:MaxPermSize1024m -XX:ReservedCodeCacheSize256m -ea -Dsun.io.useCanonCachesfalse -Djava.Net.preferIPv4Stacktrue -Djsse.e…

2024 极术通讯-安谋科技2023精彩征程回顾

导读&#xff1a;极术社区推出极术通讯&#xff0c;引入行业媒体和技术社区、咨询机构优质内容&#xff0c;定期分享产业技术趋势与市场应用热点。 芯方向 使用 Arm SPE 进行芯片数据采集和性能分析 Arm Statistical Profiling Extension (SPE, 统计分析扩展) 是一种架构级功…

CSS:水平垂直居中

公共的 CSS 样式&#xff1a; .parent {width: 300px;height: 300px;background-color:#d0e4fe; }.child {width: 100px;height: 100px;background-color:orange; }HTML: <div class"parent"><div class"child"></div> </div>最…