news 2026/9/28 21:18:46

UVA-1149 装箱 题解答案代码 算法竞赛入门经典第二版

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVA-1149 装箱 题解答案代码 算法竞赛入门经典第二版

GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版

方法比较简单:

首先选择当前最大的元素,然后再选一个最大为l-这个元素 的元素,且是符合条件中最大的。

存储使用map,好处如下:
1. 默认就是排序好的元素。

2. 查找和删除只需要O(logn)的时间复杂度。

3. 使用upper_bound方法找到大于该条件的元素,然后迭代器--,就是符合条件的元素了。

AC代码

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <map> using namespace std; map<int, int> mp; int n, l; void reduce(int i) { if (mp[i] > 1) mp[i]--; else mp.erase(i); } int computed() { int num = 0; int i, j; auto ip = mp.end(), jp = mp.end(); while (!mp.empty()) { ++num; // 找出当前最大的元素 ip = mp.end(); ip--; i = ip->first; reduce(i); // 尝试找出适配的元素 if (l == i) continue; if (mp.empty()) break; ip = mp.upper_bound(l - i); if (ip == mp.begin()) continue; --ip; reduce(ip->first); } return num; } int main() { int t, i, j, k; scanf("%d", &t); while (t--) { scanf("%d %d", &n, &l); mp.clear(); for (i = 0; i < n; ++i) { scanf("%d", &j); if (!mp[j]) mp[j] = 1; else mp[j] += 1; } printf("%d\n", computed()); if (t != 0) putchar('\n'); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 21:17:57

MangoDisk CLI使用教程:自动化磁盘清理,JSON输出轻松接入脚本

MangoDisk CLI使用教程&#xff1a;自动化磁盘清理&#xff0c;JSON输出轻松接入脚本 【免费下载链接】MangoDisk Safety-first disk cleaner and space analyzer for macOS and Windows, with duplicate cleanup, app uninstall, startup management, system optimization, an…

作者头像 李华
网站建设 2026/9/28 21:15:54

从手工 Prompt Injection 到自动化红队:一次 Qwen2.5-7B LLM 安全测试实践

从手工 Prompt Injection 到自动化红队&#xff1a;一次 Qwen2.5-7B LLM 安全测试实践前排提示&#xff1a;本文所有测试均针对本人本地部署的开源模型&#xff0c;不涉及任何线上系统&#xff1b;模型违规输出一律做概括/遮挡处理&#xff0c;不提供完整原文。完整 payload 库…

作者头像 李华
网站建设 2026/9/28 21:15:04

Android蓝牙后台保活实战:前台服务、PendingIntent与锁屏持续扫描方案

1. 蓝牙后台保活到底难在哪&#xff1a;从Android 8.0的后台限制说起做过Android蓝牙外设对接的人基本都踩过同一个坑&#xff1a;App切到后台或者手机锁屏之后&#xff0c;蓝牙扫描莫名其妙就停了&#xff0c;设备连不上、数据收不到&#xff0c;用户投诉一堆&#xff0c;自己…

作者头像 李华
网站建设 2026/9/28 21:14:23

IMX6ULL裸机 | I2C外设、FPU浮点运算、ADC模数转换

&#x1f4da; 学习概述&#xff1a;本次围绕嵌入式常用外设与模数转换技术展开&#xff0c;重点掌握I2C总线挂载的存储、传感设备特性&#xff0c;硬件浮点单元FPU配置原理&#xff0c;以及ADC模数转换的核心机制、运算逻辑、分辨率规则和降噪滤波算法&#xff0c;所有知识点均…

作者头像 李华