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

Codeforces Round 975 (Div. 2) C. Cards Partition

题目链接:题目

大意:

给出若干种卡片,每种卡片有一定数量,你可以加入不超过 k k k张任意已给出种类的卡片,使得它们可以被分成若干组,每组容量一定,且同组内不存在相同种类的卡片,求出最大能成立的容量。

思路:

这题的两个关键点在于,一找到可以分配成功的条件,二正确处理各种变量的关系。
这个条件乍一看有点复杂,单看每一组不知道要装什么数字,那么先关注一些必要条件,首先所有卡片的总和要整除每组的容量,并且每种卡片的卡牌数量都不能超过组数,否则由于抽屉原理,肯定会存在有卡片没地方装,被迫和自己兄弟挤在一起。这时候你发现这些就是充分条件,想象你把每种卡片尽可能地放在不同组中,一层层地放满后,一定能够成立,不会有冲突。
接着我们得到条件就是 s u m % l = 0 sum\%l=0 sum%l=0且单种卡片最大数量 m a x < = s u m / l max<=sum/l max<=sum/l,如何把 k k k加入其中呢?请看代码。
(一开始不敢写是因为以为卡片数量总和超过long long,后来发现最多可能也就到1e16,long long是9e18)

代码:

#include <bits/stdc++.h>
using namespace std;#define int long long
#define MOD 1000000007
#define fi first
#define se second
#define pii pair<int,int>
#define vec vectorvoid solve(){int n, k;cin >> n >> k;vec<int> a(n + 1);for(int i = 1; i <= n; i++){cin >> a[i];}int mx = *max_element(a.begin(), a.end());int sum = accumulate(a.begin(), a.end(), 0ll);int ans = 0;for(int l = n; l >= 1; l--){if(sum % l == 0 && mx * l <= sum + (k / l) * l){ans = l;break;}if(l - (sum % l) <= k && mx * l <= (sum + l - (sum % l)) + ((k - (l - (sum % l))) / l) * l){ans = l;break;}}cout << ans << '\n';
}signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin >> t;while(t--){solve();}return 0;
}   
http://www.lryc.cn/news/448661.html

相关文章:

  • Qt 首次配置 Qt Creator 14.01 for Python
  • 【python】代码发布前检查- vulture:查找死代码
  • Yolov10环境配置
  • iOS 提取图片的主题色,并支持灵活提取
  • 语雀笔记使用记录
  • 安全教育培训小程序系统开发制作方案
  • 【面试题】软件测试实习(含答案)
  • 后端回写前端日期格式化
  • 微信小程序开发系列之-在微信小程序中使用云开发
  • 《论文阅读》 用于产生移情反应的迭代联想记忆模型 ACL2024
  • 零基础教你如何开发webman应用插件
  • AVL树(平衡二叉树)的介绍以及相关构建
  • SAP员工士气因重组受到打击
  • Unity3D 中构建行为树插件详解
  • 数学符号练习-函数连续性与导数
  • 笔记本维修与拆解(一)
  • 【JavaSE系列】IO流
  • 深入探讨在线教育系统源码:搭建知识付费平台实战方案详解
  • 前端全屏模式切换
  • 构建高可用和高防御力的云服务架构第二部分:SLB负载均衡(2/5)
  • 计算机毕业设计Python+Spark知识图谱微博舆情预测 微博推荐系统 微博可视化 微博数据分析 微博大数据 微博爬虫 Hadoop 大数据毕业设计
  • excel-VBA知识点记录
  • RabbitMQ——消息的可靠性处理
  • babylon.js-1:入门篇
  • VS Code调整字体大小
  • Python基础语句教学
  • ansible 配置
  • 堆排序算法详解:原理与Python实现
  • [论文阅读] ChartInstruct: Instruction Tuning for Chart Comprehension and Reasoning
  • 基于springboot+vue学生宿舍管理系统设计与实现