CF254B Jury Size

在这里插入图片描述

题目翻译

CF254B 评审团人数

题目描述

在2013年,伯兰德州立大学的出题者需要为 nnn 场奥林匹克竞赛准备题目。我们假定这些奥林匹克竞赛用从1到 nnn 的连续整数编号。对于每一场奥林匹克竞赛,我们知道需要多少评审团成员参与其题目准备工作,以及准备该竞赛题目所需的时间。具体来说,第 iii 场奥林匹克竞赛需要 pip_{i}pi 个人花费 tit_{i}ti 天来准备,并且准备工作应该是一个连续的时间段,且恰好要在竞赛开始的前一天结束。在竞赛当天,已经准备好该竞赛的评审团成员就不再为这场竞赛工作了。

例如,如果一场奥林匹克竞赛在12月9日举行,且准备工作需要7个人花费6天时间,那么所有7名评审团成员将从12月3日到12月8日为这场奥林匹克竞赛的题目工作(评审团成员在12月9日不会为这场奥林匹克竞赛的题目工作,也就是说,他们中的一些人可以开始为其他某场奥林匹克竞赛准备题目)。而如果一场奥林匹克竞赛在11月3日举行,且需要5天的准备时间,评审团成员将从10月29日到11月2日进行工作。

为了避免评审团负担过重,引入了以下规则:一名评审团成员不能在同一天为不同的奥林匹克竞赛的题目工作。编写一个程序,确定评审团中最少需要多少人,才能按时准备好所有的奥林匹克竞赛。

输入格式

第一行包含整数 nnn —— 2013年奥林匹克竞赛的数量(1≤n≤1001 \leq n \leq 1001n100)。接下来的 nnn 行,每行包含四个整数 mim_{i}midid_{i}dipip_{i}pitit_{i}ti —— 奥林匹克竞赛的月份和日期(没有前导零)、所需的评审团成员数量以及准备第 iii 场奥林匹克竞赛所需的时间(1≤mi≤121 \leq m_{i} \leq 121mi12di≥1d_{i} \geq 1di11≤pi,ti≤1001 \leq p_{i}, t_{i} \leq 1001pi,ti100),did_{i}di 不超过月份 mim_{i}mi 的天数。奥林匹克竞赛的给出顺序是任意的。几场奥林匹克竞赛可能在同一天举行。

在解题时使用现代(公历)日历。注意所有日期都是在2013年。这一年不是闰年,所以2月有28天。请注意,某些奥林匹克竞赛的准备工作可能会在2012年开始。

输出格式

输出一个整数 —— 评审团的最小人数。

输入输出样例 #1

输入 #1

2
5 23 1 2
3 13 2 3

输出 #1

2

输入输出样例 #2

输入 #2

3
12 9 2 1
12 8 1 3
12 8 2 2

输出 #2

3

输入输出样例 #3

输入 #3

1
1 10 1 13

输出 #3

1

题解

就是统计一下每一天需要多少人,用暴力求最大值就行了

Code

#include <bits/stdc++.h>

using namespace std;

int n;
int f[1000];
int a[20] = {0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};

int main()
{
//	freopen("10.in", "r", stdin);
//	freopen("10.out", "w", stdout);
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		int a1, b, c, d;
		cin >> a1 >> b >> c >> d;
		d--;
		int l = a[a1] + b - d + 100;
		int r = a[a1] + b + 100;
		for (int j = l; j <= r; j++)
		{
			f[j] += c;
		}
	}
	int ans = 0;
	for (int i = 100; i <= 456; i++)
	{
		ans = max(ans, f[i]);
	}
	cout << ans << endl;
}
异常代码 0xC0000005 通常表示程序试图访问一个空指针,也就是对地址为 0x0000000000000000 的内存位置进行读取操作。以下是一些可能的原因及对应的解决办法: ### 1. 未正确初始化 在使用 `spdlog::basic_logger_mt` 之前,需要确保 spdlog 库已经正确初始化。同时,检查传入 `basic_logger_mt` 的参数是否有效,例如日志文件名是否为空或无效。 ```cpp #include <spdlog/spdlog.h> #include <spdlog/sinks/basic_file_sink.h> int main() { try { // 确保文件名有效 std::string filename = "logs/basic-log.txt"; auto logger = spdlog::basic_logger_mt("basic_logger", filename); logger->info("This is a log message."); } catch (const spdlog::spdlog_ex& ex) { // 处理 spdlog 异常 std::cerr << "Log initialization failed: " << ex.what() << std::endl; } return 0; } ``` ### 2. 内存管理问题 可能存在内存泄漏或双重释放的问题,导致指针变为空指针。确保在使用 `spdlog` 时,没有意外地删除或释放了相关的内存。 ### 3. 多线程问题 如果在多线程环境中使用 `spdlog`,需要确保线程安全。`spdlog::basic_logger_mt` 是多线程安全的,但仍需要注意线程同步问题。例如,避免在多个线程中同时初始化或销毁日志对象。 ### 4. 库版本不兼容 确保使用的 `spdlog` 库版本与项目的其他依赖库兼容。不同版本的库可能存在接口或实现上的差异,导致运行时错误。 ### 5. 检查文件权限 确保程序有足够的权限在指定的目录下创建和写入日志文件。如果没有权限,可能会导致日志初始化失败。 ### 参考文章 可以参考这篇文章获取更多详细信息:[https://blog.youkuaiyun.com/PSpiritV/article/details/123728315?ops_request_misc=&request_id=&biz_id=102&utm_term=Wandb%20wandb.errors&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-123728315.142^v92^insert_down1&spm=1018.2226.3001.4187](https://blog.youkuaiyun.com/PSpiritV/article/details/123728315?ops_request_misc=&request_id=&biz_id=102&utm_term=Wandb%20wandb.errors&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-123728315.142^v92^insert_down1&spm=1018.2226.3001.4187) [^2]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值