尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF2032C Trinity 解题报告

CF2032C Trinity 解题报告
📅 发布时间:2026/6/20 17:29:57

题目描述

给定长度为 \(n\) 的序列 \(a\),修改其中的一些数使得对于序列 \(a\) 中的任意三个数都能组成三角形,即两短边之和大于最长边。求出最少修改的数的个数。

解题思路

考虑到如果一个序列的最小的两个数之和大于第三个数,那么这个序列一定合法。那么进行修改的时候尽量修改最小连续的几个(或 \(0\) 个)数和最大连续的几个(或 \(0\) 个)数,使得中间没有被修改的序列为一个合法序列,被修改的数只需修改成中间这个合法序列中的数即可使整个序列合法。

那么这个问题就转化成了:找出 \(a\) 排序后的最长的连续合法子序列,若这个序列的长度为 \(k\),则答案就是 \(n-k\)。

寻找这个连续序列的长度,考虑排序后双指针。令 \(l\) 和 \(r\) 分别为这个序列的首尾,若 \(a_l+a_{l+1}>a_r\) 则此序列合法,此时 r++,判断将 \(r\) 右移后是否还合法,合法继续右移,不合法就用合法序列的长度更新答案,然后右移 \(l\) 继续判断。特别地,当 \(r-l<3\) 时,此序列组不成三元组,无法判断合法,此时必须将 \(r\) 右移。

此外,如果整个序列都不存在合法的三元组,此时只需要选择两个数不变,剩下的数都修改为这两个数中较大的那个数即可满足合法,答案为 \(n-2\)。

排序时间复杂度 \(O(n\log n)\),双指针时间复杂度 \(O(n)\),总时间复杂度 \(O(n\log n)\)。

AC Code

#include<iostream>
#include<algorithm>
#define N 200005
using namespace std;
int T,n;
int a[N];
int re()//防止作弊不放快读快写
void wr(int x)
signed main()
{T=re();while(T--){n=re();for(int i=1;i<=n;i++)a[i]=re();sort(a+1,a+n+1);int maxx=0;//答案 int l=1,r=3;//保证区间长度while(r<=n){while((a[l]+a[l+1]>a[r]||r-l<3)&&r<=n)//合法或者是长度小于 3 则 r 右移 r++;if(a[l]+a[l+1]>a[r-1])//合法序列:l~r-1,长度为 r-l maxx=max(maxx,r-l);l++;//不合法 l 右移}if(!maxx)wr(n-2),putchar('\n');elsewr(n-maxx),putchar('\n');}return 0;
}

相关新闻

  • 前端怎么学
  • 现代域名系统(DNS)深度技术架构与演进机制研究报告
  • 深入理解ref、reactive【Vue3工程级指南】

最新新闻

  • Pinwheel调度NP完全性证明:从理论到工程实践的复杂性启示
  • [论文学习]大规模线上去匿名化: LLM 驱动的隐私挑战与自动化攻击框架
  • CentOS 6 部署 SMF 的系统兼容性实战指南
  • 2026重庆两江新区机器人编程机构实测盘点:合规资质与教学品质5机构横向对比 - 互联网科技品牌测评
  • 网盘直链下载助手实用指南:九大网盘高速下载完全教程
  • 2026柏兮租车项目对接用车口碑推荐强势出炉,零套路不踩坑,租车看这篇就够 - mypinpai

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号