分队问题【贪心】【DP】

NKOJ P3680 「NOIP模拟」分队问题【动态规划】 这道题读完第一反应就是贪心,将所有的要求都从大到小排序后优先把要求最高的人放在一起然后考虑下一个新队,参考代码: sort(Ask+1,Ask+1+N,Cmp); for(I=1;I<=N;I+=Ask[I]){ Ans++; }Write(Ans); 但是实际在我提交WAWAWA了一遍之后,我才意识到这样贪心的做法是有可能存在误解的情况的,比如: 1 &nb... 阅读详情

题目大意:
这里写图片描述
InputInput

5
2
1
2
2
3 

OutputOutput

2

思路:
听说贪心不可以???
这里写图片描述
这里写图片描述
嗨嗨皮皮贪心水过。
这里写图片描述
这里写图片描述


贪心无法AC的原因是当一个队伍的人数满足要求了,你不知道应该把下一个人排在这个队伍里还是再新开一个队伍来放,有时新开一个队伍反而会使答案不是最优。比如说上面给出的反例。但是我们只要判断好放在原来队伍更优还是新开队伍更优就行了。而且贪心代码十分简洁,比DP要更加短而容易理解。


代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

int peo[2000001],n,ans,sum,ok;

bool cmp(int x,int y)
{
    return x>y;
}

int main()
{
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
     scanf("%d",&peo[i]);
    ok=1;  //是否是第一个人的判断
    sort(peo+1,peo+1+n,cmp);  //排序
    sum=peo[1];
    for (int i=1;i<=n;i++)
    {
        if (peo[i]<sum&&!ok) sum=peo[i];  //放前面更优而且不是第一个人(前面有队伍)
        sum--;  //队伍要求人数减一
        if (!sum)  //队伍人数达到要求
        {
            ok=0;  //不是第一个人
            sum=peo[i];  //新开队伍
            ans++;  
        }
    }
    return printf("%d\n",ans)&0;
}
具身机器人内部PCB板分类与系统架构详解 本文系统梳理了机器人内部PCB板的功能架构,将其划分为5大模块:1)核心主板(含主控计算机板、实时控制板等);2)感知类PCB(视觉、听觉、触觉等);3)运动控制类PCB(伺服驱动、编码器等);4)电源与安全类PCB(电源管理、BMS等);5)通信类PCB(EtherCAT背板等)。通过人体器官类比(如大脑对应主控板、小脑对应实时控制板),详解了各模块的芯片选型、位置分布及协同关系,并给出信号/能量/指令的三流闭环示意图和典型系统参数(48V供电、1ms通信周期)。整体呈现了机器人"神经系统&qu 阅读详情

相关推荐

字节跳动程序媛教你如何刷算法题:面试手撕代码我就没怕过

本人上一次刷题还是大一的C语言期末考试……但是面试中算法考核截止上岸前一直保持着100%正确率的光辉记录。 本文将给你指明一条刷题的决胜指南。并从算法的重要性、题库的选择以及刷题的三大步骤分别进行讲解,彻底解决你所有关于面试算法所有的困扰。

Stay Hungry Stay Foolish 求知若饥 虚心若愚 2万+

洛谷P2062 分队问题

题目链接 一道容易想岔的题. 一开始用了贪心的方法先排序后从末尾开始扫描数组.idx的移动规则:移动到i-a[i]的位置直到将要越界为止.这个思路是有漏洞的,比如说下面这组数据:5 3 3 3 3 3 1 1 这么贪心输出的答案是2其实正确的答案是3.因为我们把最后一个3归入到第一组里得到的答案会更好.让剩下两个1各自一组.那么就得换个思路. dp:从前面开始扫描数组.用i表示当前人数.dp[i...

weixin_45590210的博客 432

(3万字深度解析)Kaggle《房价预测:高级回归技巧》详解复现攻略

在这篇教程式文章中,我们从零开始完成了 Kaggle《房价预测:高级回归技巧》比赛的复现工作,涵盖了数据预处理、特征工程、模型训练、调优、解释和融合的完整流程。深入理解数据:阅读数据描述,结合常识对每个特征作出合理处理(如缺失值填充’None’表示无此设施 、异常值剔除 等)。对目标和偏态特征进行对数变换,使分布更平滑,从而更好满足模型假设并提升准确度。特征工程:我们创造了总面积、总浴室等新特征,整合信息提高模型可学习性。

qq_38334677的博客 1769

华为OD机考算法题:篮球比赛

华为OD机试题目《篮球比赛》的题目解读、最优解的思路分析和代码实现(包括Java和JavaScript)。此题难度为难,时间复杂度为O(1),空间复杂度为 O(1)。

星光灿烂 3150

ArcGIS-裁剪遥感影像及dem图像

6、选择【工具箱】-【数据管理工具】-【栅格】-【裁剪】。在【输入栅格】里选择要裁剪的dem,在【输出范围】里选择刚创建的裁剪范围。选择一个输出路径,其他参数保存默认。2、起一个名称,要素类型选择【面】。点击【编辑】选择与要裁剪的dem一致的地理坐标系。1、创建需要裁剪区域的面层shp,右击选择【新建】-【shapefile】3、点击编辑器,选择开始编辑。4、选择【裁剪范围】,点击确定。5、画出想要裁剪的范围并保存。

siwenaiyou的博客 1万+

深入解析:AndroidManifest.xml 与 Qt 6.7.0 的整合

本文探讨了在Qt 6.7.0和CMake构建Android应用时,AndroidManifest.xml未被正确识别的问题。通过分析CMake配置错误、文件路径问题等可能原因,提出了在CMakeLists.txt中明确指定路径、确保目录结构正确等解决方案,并给出了示例项目演示。文章强调正确配置AndroidManifest.xml对获取权限和应用功能的重要性,为Qt开发者提供了实用的调试建议。

2501_90323865的博客 110

RC-u4 攻略分队(暴力DFS+判断)

则更新最优方案。

m2750848935的博客 1406

yolov26改进 | 融合改进篇 | 华为VanillaNet配合HSFPN助力yolov26有效涨点(教你如何融合创新点)

本文介绍华为VanillaNet主干与HSFPN融合改进的YOLOv26。VanillaNet采用极简卷积结构,减少复杂分支与冗余操作,兼顾特征提取效率;HSFPN原本面向白细胞多尺度检测,通过特征选择模块筛除无效响应,再利用特征融合模块整合不同层级信息,增强大小目标表达。两者分别优化Backbone与Neck,结构互补,可进一步搭配改进损失函数和检测头开展消融实验与论文创新。已有多位读者反馈在各自数据集上取得涨点。文中提供完整代码、配置文件、模块注册及Codex修改思路,方便复现。

Snu77的博客 448

11.1 纪中之旅 Day 4

分队问题 数字对 高级打字机 T1: 分队问题 题目描述 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入 第一行一个整数n,表示人数。 以下n行,每行一个整数表示a[i]。 输出 输出队伍总数的最大值。数据保证有解。 样例 输入 5 2 1 2 2 3...

一只鲍鱼的博客 240

自监督学习原理与代码实战案例讲解

自监督学习原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 自监督学习的起源与发展 1.1.1 监督学习的局限性

AI天才研究院 623

深入浅出之CSPBlock模块(YOLO)

YOLO CSPX模块是YOLO系列算法中的一个重要组成部分,它通过跨阶段部分连接的方式减少了计算量,同时保证了模型的准确率。在YOLOv4及后续版本中,CSPX模块被广泛应用于主干网络和Neck结构中,为模型提供了强大的特征提取和融合能力。

浩瀚之水的专栏 6753

分队问题

题目 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 分析 这道题要排正序,因为后面的数是按照前面的数来进行分组,所以前面的会满足后面的。如果按照逆序,就GG了。 程序 #include&lt;iostream&gt; #include&lt...

SSL_Yyx的博客 489

《干货满满!AI 应用架构师打造 AI 驱动生产计划的实战技巧》

生产计划是制造企业的“大脑”——它决定了买什么物料、产多少产品、用什么设备、什么时候交货,直接影响企业的成本、效率和客户满意度。需求预测靠经验,误差常超20%;排产依赖Excel,调整一次要3天;供应链协同靠邮件,物料延迟导致停产屡见不鲜。作为AI应用架构师,我们的任务是用AI重新“激活”这个“大脑”——用数据驱动的预测替代经验判断,用智能优化替代人工排产,用实时协同替代被动响应。本文结合3个制造业实战案例5段可运行代码2个数字孪生模型,从架构设计→核心模块实现→落地踩坑。

移动开发前沿的博客 1083

【DP,贪心】Day 5 提高组模拟C组 T1 分队问题

题目链接 https://www.luogu.org/problemnew/show/P2062 题目大意 给定一个长度为nnn的序列,将其分为若干个序列,每个序列的长度必须大于该序列中的最大值,问最多可以划分成几个序列 解题思路 首先对该序列进行排序,然后进行动态转移 设f[i]f[i]f[i]表示前iii个数可以组成的最多序列的长度,我们可以发现f[i]f[i]f[i]只和...

Ajwallet 397

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【jzoj 3792】【 NOIP2014模拟8.20】 分队问题 {贪心 / 线性dp}

题目 Description 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 Input 第一行一个整数n,表示人数。 以下n行,每行一个整数表示a[i]。 Output 每行输出一个字母,表示Query操作的答案。 解题思路 now用来...

Nowed 650

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NOIP 2016模拟赛[八中题]题解&总结

这次比赛还是暴露出了自己的一些不足之处,比如比赛经验以及心态,还有某些知识点的缺失等等 总的来说发挥正常,就是第二题越做越慌,但是最后还是克服了这一心态,还是非常不错的 以后开始慌了就上厕所 A.分队问题 给定n 个选手,将他们分成若干只队伍。其中第i 个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属

SuperGate的博客 1501

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

The Fifth Day 总结

前言: 还是有点难,有点粗心了 模拟赛进行ing 第一题——分队问题 做第三题之后才做,瞎贪心 第二题——数字对 一开始想不出来,只能爆搜,后来发现n22^2dp能拿30分,于是改成了n22^2dp 第三题——高级打字机 水题?于是一顿骚模拟。 模拟赛进行ed 第一题 居然水到了80分 第二题 爆0,MLE,数组开大了一点点,开小点能拿30分 第...

owo 295

初学动态规划签到及记录——尝试理解

月初开始的50道DP题完成度差不多了(完全盗用了henry_y的博客,感谢),仪式感需求便想装模作样写个告示,目的主要是记录,应该不算总结(因为在我的捋顺过程中我学到的并不多),毕竟刚刚才入门,还没有深入学习便想着一昧输出自己不成型的想法是大忌(思而不学则殆)。 目录 一.从背包问题到动态规划,谈谈我的理解 二.动态规划的本质 三. 部分题目举例 什...

307

NKOJ 3860 分队问题(DP+前缀和优化)

P3860分队问题问题描述 给定 n 个选手,将他们分成若干只队伍。其中第 i 个选手要求自己所属的队 伍的人数大等于 a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入格式 第一行一个整数 n,表示人数。 以下 n 行,每行一个整数表示 a[i]。 输出格式 输出队伍总数的最大值。数据保证有解。 样例输入 5 2

Mogician_Evian的博客 431

P2062 分队问题(DP)

题目描述 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入输出格式 输入格式: 第一行一个整数n,表示人数。 以下n行,每行一个整数表示a[i]。 输出格式: 输出队伍总数的最大值。数据保证有解。 输入输出样例 输...

weixin_30723433的博客 234

【DP】【分队问题】

题目描述 给定n 个选手,将他们分成若干只队伍。其中第i 个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入格式 第一行一个整数n,表示人数。 以下n 行,每行一个整数表示a[i]。 输出格式 输出队伍总数的最大值。数据保证有解。 样例输入 5 2 1 2 2 3

Star_Weeper的博客 661

P2062 分队问题 DP

题目描述 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入输出格式 输入格式: 第一行一个整数n,表示人数。 以下n行,每行一个整数表示a[i]。 输出格式: 输出队伍总数的最大值。数据保证有解。 输入输...

weixin_30343157的博客 168

分队问题 C组模拟赛

题目大意: 有N个人,每个人都有一个要求a[i],意思是ta所在队伍人数必须大于或等于a[i] 解题思路: dp/贪心 表示贪心打起来简单 从大到小排序一遍,然后贪心具体看源程序 dp的话只给出方程: f[i]表示前i名队员最多分成的队伍数量 f[i]=max(f[j])+1,j∈[0,i–a[i]]f[i]=max(f[j])+1,j∈[0,i–a[i]]f[i] = m...

owo 281

P2062 分队问题(贪心orDP)

题目描述 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 输入输出格式 输入格式: 第一行一个整数n,表示人数。 以下n行,每行一个整数表示a[i]。 输出格式: 输出队伍总数的最大值。数据保证有解。 输入输出样例 ...

weixin_30443813的博客 282

[ZJOI2005]午餐(贪心+dp)

首先若只有一个窗口,利用贪心,按吃饭时间从大到小排序即可 正确性证明: 定义 eat[i] = 第i个人的吃饭时间,time[i] = 第i个人的打饭时间 延长时间T[i]=max(eat[i]- ∑j=i+1ntimej\sum\limits_{j=i+1}^ntime_jj=i+1∑n​timej​ ,0) 最后的集合时间为∑j=1ntimej\sum\limits_{j=1}^ntime_jj=1∑n​timej​ + max{T[i] , i∈[1,N]} 将人按照eat大小从大到小排序后,易证

Edward The Bunny 的博客 275

高中OJ 3792. 【NOIP2014模拟8.20】分队问题

这题刚开始是想用贪心,结果因为数组少打了1个0所以少了40分。。。 先说说贪心的思想。 因为组数要尽量分多,所以我们可以从大到小排序,就是把大的数放在一堆组成一队,剩下的较小数就可以组成更多的队伍。 反例: 1 2 4 5 5 5 5 5 如果我们从右往左找,把5个5分成一队,之后就不足4人,所以无法成立。 所以正解应该是这样: (1 2) (4 5 5 5 5 5)

某司机的黑车 593
上一篇: GCD与LCM【数论】
下一篇: 数字对【数论】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值