【暴力剪枝】CF1708D

https://codeforces.com/contest/1708/problem/D

题意

思路

这样的操作下,数列减的速度是非常快的 ,也就是说,易出现很多的0,0的操作没啥意义,所以我们要找到第一个 >0 的数对其后的序列进行排序,就能大大减少复杂度

这道题告诉我们实在没思路可以猜个暴力剪枝的做法

Code:

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

#define int long long

constexpr int N = 2e5 + 10;
constexpr int mod = 998244353;

int n;
int a[N];

void solve() {
	std::cin >> n;
	for (int i = 1; i <= n; i ++) {
		std::cin >> a[i];
	}
	int pos = 0;
	for (int i = 1; i <= n; i ++) {
		if (a[i]) {
			pos = i - 1;
			break;
		}
	}
	while(n > 1) {
		for (int i = std::max(pos, 1ll); i <= n; i ++) {
			a[i] = a[i + 1] - a[i];
		}
		n --;
		std::sort(a + pos, a + 1 + n);
		pos = std::upper_bound(a + 1, a + 1 + n, 0) - a - 1;
		if (pos == n - 1) break;
	}
	std::cout << a[n] << "\n";
}
signed main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);

	int t = 1;
	std::cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}
相关推荐
deardao5 分钟前
【时序异常检测综述】十年回顾:深入研究时间序列异常检测
人工智能·机器学习·时间序列·事件检测
LYFlied6 分钟前
【每日算法】LeetCode 105. 从前序与中序遍历序列构造二叉树
数据结构·算法·leetcode·面试·职场和发展
DanyHope11 分钟前
LeetCode 206. 反转链表:迭代 + 递归双解法全解析
算法·leetcode·链表·递归·迭代
NAGNIP15 分钟前
才发现TensorBoard是个可视化的神器!
算法
_dindong20 分钟前
算法杂谈:回溯路线
数据结构·算法·动态规划·bfs·宽度优先
咋吃都不胖lyh21 分钟前
详解 UCB 算法的置信区间与核心逻辑(通俗 + 公式 + 实例)
人工智能·算法·机器学习
浮不上来25 分钟前
人工兔优化算法(ARO)详解:原理、实现与应用
大数据·人工智能·机器学习·优化算法
DanyHope29 分钟前
LeetCode 两数之和:从 O (n²) 到 O (n),空间换时间的经典实践
前端·javascript·算法·leetcode·职场和发展
free-elcmacom36 分钟前
机器学习高阶教程<6>推荐系统高阶修炼手册:混排、多任务与在线学习,解锁精准推荐新境界
人工智能·python·学习·算法·机器学习·机器人
断剑zou天涯36 分钟前
【算法笔记】AC自动机
java·笔记·算法