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

洛谷P10133 题解

洛谷P10133 题解

一道差分黄题(但我似乎并没有用差分)

原题指路

题意简述

给定有 \(n\) 个元素的数组 \(a\)

可以在任意位置 \(i\) 向后加上(或减去)一个首项为 1,公差为 1,长度为 \(n\)\(i\) + 1(即结束点为 \(n\))的等差数列。

问需要加(或减)几个等差数列可使 \(a\) 中的值全为 \(0\)

思路解析

想了很久不知道怎么写,所以乱水一点。

从第一个元素开始向后遍历,依次将每个元素清零。

使用两个变量 \(flag\)\(cs\)
\(flag\) 记录当前元素需要改变的值,\(cs\) 记录 \(flag\) 需要改变的值。

对于第 \(i\) 个元素而言,先将它改变 \(flag\),之后通过当前元素的值改变 \(cs\) 的值,然后改变 \(flag\) 的值。

代码展示

#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 2e5 + 100;
int n, a[N], ans, flag, cs;signed main(){freopen("bact.in", "r", stdin);freopen("bact.out", "w", stdout);scanf("%lld", &n);for(int i = 1; i <= n; i++){scanf("%lld", &a[i]);}for(int i = 1; i <= n; i++){flag += cs;a[i] += flag;if(a[i] == 0) continue;flag += (a[i] * -1);ans += abs(a[i]);cs += (a[i] * -1);}printf("%lld", ans);return 0;
}
http://www.rkmt.cn/news/93509.html

相关文章:

  • 2025年口碑好国际博士申请6大专业服务商辅导机构推荐指南:靠谱国际博士报读渠道 - 品牌企业推荐师(官方)
  • 2025 年 12 月国内靠谱的实验室装修设计公司权威推荐榜 - 品牌推荐大师
  • 利用多目标粒子群算法MOPSO以及多目标免疫算法NNIA求解综合能源系统规划问题
  • 2025年实验室装修设计公司权威推荐榜:3大主流品牌深度解析 - 品牌推荐大师
  • ISO/IEC 27005:2022完整教程:信息安全风险管理终极指南
  • Zephyr RTOS音频处理终极指南:I2S与DMA技术深度解析
  • Chrome浏览器Flash插件终极离线安装指南
  • 5个实用技巧彻底解决PhpSpreadsheet内存不足问题
  • 单北斗GNSS在大坝形变监测中的应用与发展分析
  • AWS资源清理神器:aws-nuke完全使用指南
  • 从 “选题卡壳” 到 “终稿交付”:paperzz AI 毕业论文功能如何帮你跳出 “写论文的死循环”?
  • MySQL索引优化实战指南:SOAR与SQLAdvisor在Archery平台的应用对比
  • 老鹰抓鱼主图之选股指标公式
  • 免费静音音频资源:30秒纯静音文件终极指南
  • 通达信自创指标
  • 计算机科学导论终极指南:完整电子版资源下载
  • PakePlus-Android:网页转应用神器,9分钟打造专属App
  • 腾讯Hunyuan3D-Omni终极指南:零基础快速创建专业级3D模型
  • Bililive-go直播录制工具:新手零基础使用指南
  • App Inventor扩展插件:让移动开发更高效
  • dependency-cruiser扩展开发终极指南:如何为多语言项目构建自定义依赖分析器
  • DeepSeek-V3.1-Terminus升级:代码智能体性能跃升23%,多语言一致性显著提升
  • 从零到架构师:我的系统设计书单进化之路
  • 电动平车厂家哪家好
  • SenseVoice多语言语音识别:移动端轻量级AI语音理解解决方案
  • MotionGPT终极指南:用语言模型生成人类运动的完整方法
  • 5分钟快速上手postcss-cssnext:用明天的CSS语法开发今天
  • 【MySQL】数据库表的操作 - 实践
  • 打造你的第一个OpenUSD 3D世界:从零开始的场景构建完全指南
  • VirtualMotionCapture 完整使用指南:从入门到精通