当前位置: 首页 > news >正文

上海计算机学会10月月赛丙组T3对称合并题解

对称合并

内存限制: 256 Mb时间限制: 1000 ms

题目描述

数列 α1,α2,…,αnα1​,α2​,…,αn​ 的逆转定义为 αn,αn−1,…,α1αn​,αn−1​,…,α1​。

如果一个数列与它的逆转完全一样,则称该数列对称。

例如 1,2,2,11,2,2,1 以及 123,456,123123,456,123 都是对称的,但 121,212121,212 不是。

给定一个数列 A1,A2,…,ANA1​,A2​,…,AN​,请问至少需要进行几次合并操作,才能将这个数列变成对称?

所谓合并操作就是在数列中选择两个相邻的数字,删除它们,然后将它们的和插入到删除的位置。

输入格式
  • 第一行:单个整数表示 NN
  • 第二行:NN 个整数表示 A1,A2,…,ANA1​,A2​,…,AN​
输出格式
  • 单个整数表示答案。
数据范围
  • 对于 30%30% 的数据,N≤10N≤10。
  • 对于 60%60% 的数据,N≤103N≤103。
  • 对于 100%100% 的数据,1≤N≤1061≤N≤106
  • 1≤Ai≤1091≤Ai​≤109。
题解:
  • 用两个指针i=1, j=N,分别从两端开始

  • 比较A[i]A[j]

    • 如果相等:i++, j--,继续比较下一对

    • 如果不相等:我们需要合并使得它们相等

      • 如果A[i] < A[j]:合并左边的A[i]A[i+1],使左边和增大

      • 如果A[i] > A[j]:合并右边的A[j-1]A[j],使右边和增大

    • 每次合并操作计数加1

  • 直到i >= j

    #include <iostream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; vector<long long> A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } int i = 0, j = N - 1; long long left_sum = 0, right_sum = 0; int operations = 0; while (i < j) { if (left_sum == 0) left_sum = A[i]; if (right_sum == 0) right_sum = A[j]; if (left_sum == right_sum) { left_sum = 0; right_sum = 0; i++; j--; } else if (left_sum < right_sum) { operations++; left_sum += A[i + 1]; i++; } else { // left_sum > right_sum operations++; right_sum += A[j - 1]; j--; } } cout << operations << endl; return 0; }
http://www.cnnetsun.cn/news/181262.html

相关文章:

  • 为什么顶尖文创团队都在用Open-AutoGLM?真相令人震惊
  • Java 岗 798 道真题解析,定级阿里 P7
  • 【程序员转型】90 天掌握网络安全黑客技能:从开发经验到内网渗透 / 漏洞分析的转型路径与实操技巧
  • 分布式计算框架的故障诊断与修复
  • 揭秘Open-AutoGLM技术架构:如何实现跨社区自动化服务闭环
  • AI辅助创作的终极武器:Open-AutoGLM部署与定制化实战
  • 面对AI时代潮流,测试人应该如何应对?
  • 从“流量变现”到“关系资产变现”:AI智能体如何重估私域的价值本源|创客匠人
  • 【Open-AutoGLM极地科考适配优化】:揭秘高寒极端环境下大模型稳定运行的5大核心技术
  • 【好写作AI】内容过于AI?好写作支持人性化润色与调校,赋予论文真实的“研究者之声”
  • 计算机毕业设计springboot家庭财务管理系统 基于 Spring Boot 的家庭财务智能管理系统设计与实现 Spring Boot 架构下的家庭财务信息化管理系统开发
  • 344.【结构化开发方法】系统分析
  • Open-AutoGLM模型调优技巧(性能提升80%的3个关键步骤)
  • 为什么瑞芯微(Rockchip)官方未提供FreeRTOS类os SDK支持
  • 网络安全核心基础百问百答:你的第一本实用安全速查手册
  • 揭秘Open-AutoGLM如何拯救非遗文化:5大核心技术首次公开
  • 揭秘Open-AutoGLM底层架构:如何实现高质量文创内容自动生成
  • 收藏!大模型学习实战指南:从入门到进阶,小白/程序员少走90%弯路
  • 收藏!2025年AI行业风口:应用层人才成企业争抢核心,程序员/小白入门指南
  • 你不知道的Open-AutoGLM黑科技(5个隐藏功能让城市管理效率提升300%)
  • 传奇手游快速挂机 巨 椰 云手机
  • AbMole小课堂:类器官培养中决定成败的抑制剂、细胞因子
  • Vue基础入门08,详解 Vue watch 侦听器:基础用法、深度监听与立即执行场景
  • 怎样选择品牌代工厂?不要只关注价格,这5点才是关键
  • 一键群控多台电脑,狂揽 2.2 万 GitHub Star!
  • Open-AutoGLM模型压缩技术揭秘:在边缘设备上实现毫秒级推理的6种方法
  • Open-AutoGLM部署避坑指南,20年架构师亲授高可用场景适配秘诀
  • 为什么说Open-AutoGLM是首个真正具备自主学习能力的开源框架?
  • 一篇文章熟悉Java打包到部署
  • 数据结构 —— 顺序表