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

洛谷P10133 题解

洛谷P10133 题解
📅 发布时间:2026/6/21 10:28:24

洛谷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;
}

相关新闻

  • 2025年口碑好国际博士申请6大专业服务商辅导机构推荐指南:靠谱国际博士报读渠道 - 品牌企业推荐师(官方)
  • 2025 年 12 月国内靠谱的实验室装修设计公司权威推荐榜 - 品牌推荐大师
  • 利用多目标粒子群算法MOPSO以及多目标免疫算法NNIA求解综合能源系统规划问题

最新新闻

  • 3分钟上手:用这个Chrome扩展彻底改变你的Markdown阅读体验
  • 5大核心技术解析:gdsdecomp如何实现Godot游戏逆向工程的零门槛突破
  • 东莞电源线加工厂有哪些?全链路源头加工认准东莞市正好电气有限公司 - 速递信息
  • 重塑规矩意识!福建靠谱军事化特训机构-科学矫正不良行为习惯 - 武汉中职最新信息发布
  • 寄大件怎么最省钱?2026物流公司价格对比 - 快递物流资讯
  • 政企协同筑通信屏障 本土担当护冰雪亚冬:海能达专网方案落地龙江,黑龙江单工科技以专业服务诠释保障使命 - 无线电评测大师

日新闻

  • 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 号