当前位置: 首页 > backend >正文

CCPC shandong 2025 G

题目链接:https://codeforces.com/gym/105930/problem/G
题目背景:

        n 名工人加工 m 个工件,第 i 个工件在第 ti 分钟的开头加入 工人 wi 的收件箱。 每分钟,工人从收件箱里拿出一个工件,完成加工后放入下 一个工人的收件箱(如果是最后一个工人则加工完成)。问 所有工件加工完成需要几分钟。

思路:

        由于每个工人每分钟只能处理一个任务,可以先预处理出来每个任务的结束时间v[i],既 t + n - w;再对结束时间进行升序排序,只需对其进行 ans = max(ans + 1, v[i])运算即可。可证明贪心策略成立。

数据范围:

        n 总和不超过 2e5。

时间复杂度:

        O(nlogn)

ac代码: 
#include <bits/stdc++.h>#define ioscc ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define endl '\n'
#define me(a, x) memset(a, x, sizeof a)
#define all(a) a.begin(), a.end()
#define sz(a) ((int)(a).size())
#define pb(a) push_back(a)
using namespace std;typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<vector<int>> vvi;
typedef vector<int> vi;
typedef vector<bool> vb;const int dx[4] = {-1, 0, 1, 0};
const int dy[4] = {0, 1, 0, -1};
const int MAX = (1ll << 31) - 1;
const int MIN = 1 << 31;
const int MOD = 1e9 + 7;
const int N = 1e5 + 10;template <class T>
ostream &operator<<(ostream &os, const vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cout << a[i] << ' ';return os;
}template <class T>
istream &operator>>(istream &in, vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cin >> a[i];return in;
}/* 有乘就强转,前缀和开ll */void solve()
{int n, m;cin >> m >> n;vi v(m + 10, 0);for (int i = 0; i < m; ++i){int a, b;cin >> a >> b;v[i] = b + n - a;}sort(v.begin(), v.begin() + m);int ans = v[0];for (int i = 1; i < m; ++i)ans = max(ans + 1, v[i]);cout << ans << endl;
}int main()
{ioscc;int T;cin >> T;while (T--)solve();return 0;
}

http://www.xdnf.cn/news/9979.html

相关文章:

  • 【数据集】中国日尺度1 km全天候地表温度数据集(2000-2022)
  • 尚硅谷redis7 74-85 redis集群分片之集群是什么
  • 【区间dp】-----例题5【田忌赛马】(暂时只会贪心解法)
  • Chuanpai、Nihongo wa Muzukashii Desu、K-skip Permutation
  • 3340. 检查平衡字符串
  • 【2025文博会现场直击】多图预警
  • One Year~
  • WES(三)——变异检测
  • Pix4d航测软件正射影像生产流程(一)项目创建及快速空三
  • Baklib企业知识激活解决方案
  • MySQL 数据库中的主键、超键、候选键、外键是什么?
  • vue3 driverjs
  • 车载摄像头选型相关
  • 初识JAVA:Java异常种类
  • Blaster - Multiplayer P117-PXXX: 匹配状态
  • 项目使用富文本编辑器发送邮件,邮箱无法预览
  • Parasoft C++Test软件单元测试_常见问题及处理
  • MySQL 8.0中的mysql.ibd文件
  • 深度学习目标检测实战——YOLOv8从入门到部署
  • linux 1.0.3
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 6】【bt_vendor_opcode_t 介绍】
  • oracle 导入导出 dmp 数据文件实战
  • 树型表查询方法 —— SQL递归
  • RockyLinux9安装Docker
  • 进阶智能体实战八、需求分析助手(基于qwen多模态大模型对图文需求文档分析)(帮你生成 模块划分+页面+表设计、状态机、工作流、ER模型)
  • 摄像头模块的镜头类型
  • Git 全平台安装指南:从 Linux 到 Windows 的详细教程
  • PCIe走线注意事项
  • 【动态规划:斐波那契数列模型】第 N 个泰波那契数
  • 英语学习5.29