【暴力剪枝】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;
}
相关推荐
极光代码工作室8 小时前
基于机器学习的二手商品价格预测系统
人工智能·python·深度学习·机器学习
叁散8 小时前
ESP32 LCD1602显示实验报告
算法
过期动态8 小时前
【LeetCode 热题 100】盛最多水的容器
java·数据结构·spring boot·算法·leetcode·spring cloud·职场和发展
凌波粒8 小时前
LeetCode--700.二叉搜索树中的搜索(二叉树)
算法·leetcode·职场和发展
君为先-bey8 小时前
LeMiCa——基于扩散模型的高效视频生成的词典序最小化路径缓存
python·算法·机器学习·扩散模型
洛水水9 小时前
【力扣100题】58.轮转数组
算法·leetcode
资深流水灯工程师9 小时前
LMS 最小均方算法在 DSP 上的 C 语言实现
算法
风筝在晴天搁浅9 小时前
阿里 LeetCode 876.链表的中间节点
算法·leetcode·链表
玖釉-9 小时前
二叉树展开为链表:从先序遍历到原地指针重排
c++·windows·算法·leetcode·链表
05候补工程师9 小时前
【408考研·数据结构专题】二叉树、树与森林、线索树及哈夫曼树核心考点与秒杀技巧深度总结
数据结构·经验分享·笔记·考研·算法