关注
贪心
可以通过有限次的分组和重排,使得书籍编号有序。
首先,需要将书籍按照编号从小到大排序,同时记录每本书原来的位置。
排序后,遍历排序后的数组,检查相邻两本书的原始位置是否连续。如果不连续,说明这里必须要进行一次分组。
统计需要分组的次数,如果这个次数不超过给定的 ,那么就可以实现目标。
#include <iostream>
(30316)#include <vector>
#include <algorithm>
using namespace std;
void solve() {
int n, k;
cin >> n >> k;
vector<pair<long long, int>> books(n);
for (int i = 0; i < n; i++) {
cin >> books[i].first;
books[i].second = i;
}
// 按编号排序
sort(books.begin(), books.end());
int groups = 1;
for (int i = 1; i < n; i++) {
// 如果相邻两本书的原始位置不连续,需要增加一个分组
if (books[i].second - books[i-1].second != 1) {
groups++;
}
}
// 如果需要的分组数不超过k,则可以实现目标
cout << (groups <= k ? "True" : "False") << endl;
}
int main() {
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
查看原帖
3 4
相关推荐
09-11 17:25
浙江工商大学 游戏测试 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的mentor是什么样的人? #
8764次浏览 73人参与
# 毕业租房也有小确幸 #
139894次浏览 4487人参与
# 未岚大陆求职进展汇总 #
38724次浏览 119人参与
# 帮我看看,领导说这话什么意思? #
10939次浏览 65人参与
# 牛友的志愿填报指南 #
33007次浏览 172人参与
# 怎么给家人解释你的工作? #
5028次浏览 44人参与
# 平安产险科技校招 #
2553次浏览 0人参与
# 得物app工作体验 #
26624次浏览 56人参与
# 租房前辈的忠告 #
258578次浏览 7110人参与
# 26届秋招公司红黑榜 #
20735次浏览 74人参与
# 求职低谷期你是怎么度过的 #
8567次浏览 163人参与
# 你觉得mentor喜欢什么样的实习生 #
13859次浏览 363人参与
# 校招泡的最久的公司是哪家? #
8269次浏览 46人参与
# 国企还是互联网,你怎么选? #
166406次浏览 1148人参与
# 没有家庭托举的我是怎么找工作的 #
16242次浏览 195人参与
# 度小满求职进展汇总 #
11379次浏览 58人参与
# 从哪些方向判断这个offer值不值得去? #
9313次浏览 106人参与
# 实习必须要去大厂吗? #
148661次浏览 1551人参与
# 牛客树洞,我想对你说 #
3107次浏览 53人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
266893次浏览 1859人参与
# 面试紧张时你会有什么表现? #
2428次浏览 23人参与
# 机械人的工作环境真的很差吗 #
25864次浏览 120人参与