练 习 题

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int p(int a[], int l, int r) {
	int v = a[r];
	int i = l - 1;
	for (int j = l; j < r; j++) {
		if (a[j] >= v) {
			i++;
			swap(a[i], a[j]);
		}
	}
	swap(a[i+1], a[r]);
	return i + 1;
}
int fi(int a[], int l, int r, int k) {
	if (l == r) return a[l];
	int s = p(a, l, r);
	int b = s - l + 1;
	if (b == k) return a[s];
	else if (b > k) return fi(a, l, s-1, k);
	else return fi(a, s+1, r, k-b);
}

int main() {
	int n, k;
	cin >> n >> k;
	int a[100000];
	for (int i = 0; i < n; i++) cin >> a[i];
	cout << fi(a, 0, n-1, k) << endl;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

int main() {
	int n;
	cin >> n;
	
	int s[1000], e[1000];
	for (int i = 0; i < n; ++i) {
		cin >> s[i] >> e[i];
	}
	
	for (int i = 0; i < n - 1; ++i) {
		for (int j = 0; j < n - i - 1; ++j) {
			if (s[j] > s[j + 1]) {
				swap(s[j], s[j + 1]);
				swap(e[j], e[j + 1]);
			}
		}
	}
	int ms = s[0], me = e[0];
	bool f = true;
	for (int i = 1; i < n; ++i) {
		if (s[i] <= me) {
			me = max(me, e[i]);
		} else {
			f = false;
			break;
		}
	}
	if (f==true) {
		cout << ms << " " << me << endl;
	} else {
		cout << "no" << endl;
	}
	return 0;
}
相关推荐
罗西的思考2 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营5 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队6 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
用户8055336980312 小时前
不止三件套: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%
算法