蓝桥杯复习之差分

题目:空调

题目链接:https://www.acwing.com/problem/content/description/4265/

思路:

对希望温度与实际温度做差,再对这个做差数组做差分。我们的每次操作等价于在差分数组中选一个数加一或者选两个数一个加一,一个减一。找出差分数组中正数和和负数和中绝对值大的那个就行。

代码:

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

using ll = long long;
const ll N = 100005;
const ll mod = 1e9 + 7;
const int maxn = 2005;
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

int p[N];
int t[N];
int fnt[N];
int subs[N];

void solve() {
	int n; cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> p[i];
	}
	for (int i = 1; i <= n; i++) {
		cin >> t[i];
	}
	for (int i = 1; i <= n; i++) {
		subs[i] = p[i] - t[i];
	}
	for (int i = 1; i <= n; i++) {
		fnt[i] = subs[i] - subs[i - 1];
	}
	int sump = 0, sumn = 0;

	for (int i = 1; i <= n; i++) {
		if (fnt[i] > 0)
			sump += fnt[i];
		else
			sumn += -fnt[i];
	}
	cout << max(sump, sumn) << '\n';
}
		

signed main() {

	ios::sync_with_stdio(false);
	cin.tie(0);
	std::cout.tie(0);

	int t = 1; //cin >> t;
	while (t--)
		solve();

	return 0;
}
相关推荐
CSharp精选营6 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队7 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
用户8055336980313 小时前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
To_OC1 天前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC1 天前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode
BadBadBad__AK1 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境2 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
_清歌2 天前
DSpark 深度解读:DeepSeek-V4 如何用「半自回归」把推理速度提升 85%
算法
统计实现局2 天前
SVD 的三步走:双对角化、Givens 收敛、排序
算法