news 2026/1/17 7:55:13

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上海计算机学会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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/8 9:22:43

为什么顶尖文创团队都在用Open-AutoGLM?真相令人震惊

第一章&#xff1a;为什么顶尖文创团队都在用Open-AutoGLM&#xff1f;真相令人震惊创意生成效率的革命性突破 顶尖文创团队选择 Open-AutoGLM 的核心原因在于其对创意生产流程的彻底重构。该框架融合了大语言模型的语义理解能力与自动化任务调度机制&#xff0c;使从概念构思到…

作者头像 李华
网站建设 2026/1/11 6:38:48

Java 岗 798 道真题解析,定级阿里 P7

前言春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们 Java 程序员的面试之路&#xff0c;是挺难的&#xff0c;过了 HR&#xff0c;还得被技术面&#xff0c;鄙人在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终侥…

作者头像 李华
网站建设 2026/1/11 2:25:20

分布式计算框架的故障诊断与修复

分布式计算框架的故障诊断与修复&#xff1a;原理、实践与未来 关键词&#xff1a;分布式计算框架、故障诊断、故障修复、一致性协议、监控系统、容错机制 摘要&#xff1a;本文深入探讨分布式计算框架中的故障诊断与修复技术。首先阐述分布式计算框架的发展背景与面临的问题空…

作者头像 李华
网站建设 2026/1/12 14:01:46

揭秘Open-AutoGLM技术架构:如何实现跨社区自动化服务闭环

第一章&#xff1a;揭秘Open-AutoGLM技术架构&#xff1a;如何实现跨社区自动化服务闭环Open-AutoGLM 是一种面向多社区协同的自动化大语言模型服务框架&#xff0c;其核心在于打通异构平台间的语义理解与任务执行通道。该架构通过解耦感知、决策与执行三层模块&#xff0c;实现…

作者头像 李华
网站建设 2025/12/29 4:28:01

AI辅助创作的终极武器:Open-AutoGLM部署与定制化实战

第一章&#xff1a;AI辅助创作的终极武器&#xff1a;Open-AutoGLM部署与定制化实战在内容创作日益依赖人工智能的今天&#xff0c;Open-AutoGLM 作为一款开源的大语言模型自动化框架&#xff0c;为开发者提供了高度可定制的 AI 写作能力。通过本地化部署与模块化扩展&#xff…

作者头像 李华