158B Taxi 贪心

难度指数1100 Codeforces 158B Taxi 巧妙统记需要Taxi的数量 After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the i-th group consists of si friends (1 ≤ si ≤ 4), and they want to go to Polycarpus together. They decided to get there by t 阅读详情

题意:有N(1 ≤ n ≤ 10^5)个组,输入Si(1<= Si <= 4),Si代表第i组有Si个人。现在要求将所有人都能运走,问需要多少辆出租车,已知一辆出租车最多能装4人,一个组的人不能分开坐,同时一辆出租车可以装不同组的人。

分析:很明显的贪心,先满足人多的组,人数不够的拿人数少的组中凑。
①先将人数从小到大排序,设两个指针s,e分别指向头尾
②若a[e] == 4则出租车数量+1 e–,若a[e] < 4 则 a[e]就要不断从a[s],s++;中凑人数,直到凑满或没得凑为止 e–;。
③当s >= e 结束

具体代码:

const double EPS = 1e-6;
const int maxn = 100000 + 10;
const int INF = (1 << 30);
int a[maxn];
int main(){
    int n;
    cin >> n;
    int s = 0, e = n-1;
    for(int i = 0; i < n; ++i)
        cin >> a[i];
    sort(a,a+n);
    int ans = 0;
    for(int i = e; i >= s; i--){
        if(a[i] < 4){
            int tmp = a[i];
            while(tmp + a[s] <= 4 && s != i){
                tmp += a[s];
                s++;
            }
            ans++;
        }
        else ans++;
    }
    cout << ans << endl;
    return 0;
}

头文件:

#include <set>
#include <numeric>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cctype>
#include <string>
#include <sstream>
#include <map>
#include <functional>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
#define REP(idx1,num1) for(LL idx1=0;idx1<(num1);idx1++)
#define pb push_back
#define empb emplace_back
#define mk make_pair
#define mem(s) memset(s,0,sizeof(s));
overleaf导入模板 本文介绍了如何在Overleaf平台导入Springer Nature模板。首先下载所需的模板压缩包,然后在Overleaf中选择"Upload project"上传该压缩包。上传后会显示模板文件,包括EPS格式图像文件、LaTeX源文件、BibTeX参考文献文件、PDF输出文件以及文档类文件。这些文件共同构成了完整的LaTeX模板,可用于学术论文写作和排版。 阅读详情

相关推荐

基于Arduino 的 FM 调频收音机

这是一个基于 Arduino 的开源的收音机项目,它具备一台标准收音机的全部功能,从控制部分到外壳都可以自己 DIY。在项目中,我们将介绍让 FM 收音机调谐器的 RDA5807 模块与 I2C 协议进行通信的方法,整个过程只需要两根线就可以与 IC 通信,接线非常简单。3D 打印的外壳也非常简洁。总之,是个非常简单和实用的项目,来试试吧!

ByteBox的博客 1642

(Code forces) Taxi

After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the i-th group consists of si friends (1 ≤ si ≤ 4), and they want to g...

shuati2000的博客 411

别再死磕官方文档了!用宿舍开黑的故事,5分钟搞懂Autosar CanNM网管报文

本文通过宿舍开黑游戏的生动类比,深入浅出地解析了Autosar CanNM网管报文的工作原理。从游戏队友协作到汽车ECU节点的同步机制,详细介绍了网管报文的唤醒流程、通信协议及休眠策略,帮助读者快速掌握这一关键技术。

weixin_30463341的博客 261

Codeforces 158B:Taxi

B. Taxitime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAfter the lessons n groups of schoolchildren went outside and decided to visit Polycarpus t...

执念 759

浙政钉(专有钉钉)门户免登(超详细)

钉钉家族 介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉,专有钉钉,浙政钉 钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。 专有钉钉 原名 政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。 浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单

一缕南风的博客 2万+

Python 使用Pygame库实现足球游戏:创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理

本文将介绍如何使用Python和Pygame库创建一个简单的足球游戏。我们将搭建一个基本的游戏环境,创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理。这个简单的足球游戏展示了Pygame的一些基本功能。虽然这是一个简单的游戏,但它包含了创建游戏循环、用户输入处理、物理模拟、碰撞检测等重要概念。

程序熊的博客 743

codeforce 158B Taxi

codeforce 128B

yu_duan_hun的博客 451

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 166

codeforces 158B Taxi(贪心小水题)

B. Taxi 点击打开题目 time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output After the lessons n groups of schoolchildren went o

3085

基于知识图谱的时空事件关联推理能力培养

随着信息技术的飞速发展,大量的时空事件数据被产生和收集,如交通流量数据、气象观测数据、社交媒体上的地理定位信息等。这些数据蕴含着丰富的知识和规律,但要从中提取有价值的信息并非易事。基于知识图谱的时空事件关联推理旨在通过构建知识图谱,将时空事件数据进行整合和关联,从而实现对事件之间潜在关系的挖掘和推理。本文的目的是系统地介绍基于知识图谱的时空事件关联推理能力的培养方法,包括核心概念、算法原理、数学模型、实际应用等方面。

操作系统内核探秘的博客 750

第4篇:使用 NModbus 库快速搭建 Modbus TCP 通信(从零开始用 C# 开发 Modbus 上位机)

本文介绍了如何使用 NModbus 库快速搭建 Modbus TCP 上位机通信程序。通过安装 NModbus4 NuGet 包,开发者可以轻松实现 Modbus TCP 连接,无需手动处理底层协议细节。文章详细演示了核心功能实现: 创建 TCP 客户端连接设备 读取保持寄存器(功能码0x03) 写入单个寄存器(功能码0x06) 关闭连接释放资源 提供完整C#示例代码,包含初始化连接、数据读写等关键操作,帮助开发者快速构建Modbus TCP通信应用。相比手动实现,NModbus库大幅简化了开发流程,特别适

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1045

CodeForces - 158B Taxi

B题 Taxi After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the i-th group consists of si friends (1 ≤ si ≤ 4), and they ...

一个蒟蒻的博客 551

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Codeforces】158B-Taxi(贪心,怎么贪咧)

     贪心   emmmm http://codeforces.com/contest/158/problem/B 题目大意:有四种旅客,四人一组,三人一组,两人一组,一人一组,一辆出租车最多可以坐四个人,并且一组里的人必须坐一辆车,可以 4,3+1,2+2,3,2+1+1......,求解最小的出租车数。 贪心,显示找4的个数,再找3的个数,把能带走的1尽量带走,最后讨论2 和 剩下的...

( :3 ) 464

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CodeForces - 158B.Taxi (贪心)

CodeForces - 158B.Taxi (贪心)题意分析首先对1234的个数分别统计,4人组的直接加上即可。然后让1和3成对处理,只有2种情况,第一种是1多,就让剩下的1和2组队处理,另外一种是3多,那么结果就加上3的个数,再单独处理2. 对于1和2组队处理的讨论:首先分配2,有2种情况,一种是2正好分配完了,另外一种就2还剩下2个人(正好剩下1组)。就一起处理这个2个人和1剩下的人。 把

Pengwill's Blog 485

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

codeforces 158B Taxi (贪心)

题目: B. Taxi time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output After the lessons n groups of schoolchildr

Notdeep__acm的专栏 957

codeforces 158B - Taxi 贪心

来记录不同大小的小组的数量,然后根据题目所述的贪心策略来计算所需的车辆数量。特别地,当小组的大小为2时,如果有偶数个小组,则可以将它们分别安排在不同的车子里,否则需要安排其中的一个小组和一个大小为1的小组一起乘车。同时,对于小组大小为1的情况,如果还有未被安排的小组,则可以将它们安排在同一辆车子里,这样可以使所需的车辆数量最小化。这道题是一道贪心算法的题目,因为要求每个车子都需要满载,所以我们考虑每次尽可能地选取人数较多的小组。同时,我们可以使用桶来记录不同大小的小组的数量,便于计算最终所需的车辆数量。

Landing_on_Mars的博客 122

Codeforces 158B. Taxi 【贪心】

http://codeforces.com/problemset/problem/158/B time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output After the lessons n groups of schoolchildr...

肖火柴的火柴盒 438

codeforces158B Taxi(贪心)

After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that thei-th group consists ofsi friends (1 ≤ si ≤ 4), and they want to

sinat_35121480的博客 878

codeforces 158B Taxi(贪心)

题目链接 题目大意:有n组小学生想要搭乘出租车,每辆出租车最多能坐4个小学生,每组小学生必须坐同一辆出租车,问至少需要多少辆出租车? 分析:要想出租车的数量尽量少,那么肯定要尽量让能够拼车的组拼车,比如说3个人的组就可以找1个人的组拼车,2个人的组可以找2个人的组拼车,那么可以用贪心来解决,具体思路看代码注释。 #include&lt;bits/stdc++.h&gt; #define C...

不期而遇 446

CodeForces 158B Taxi(贪心)

 贪心,注意优先级,4单独,3与1先匹配,2与2匹配(注意判断2有没有剩下),然后2与两个1匹配,最后4个1匹配就可以了. #include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() { int n; int ...

weixin_30408739的博客 106

Codeforces 158B. Taxi

题目链接:nisisin(1 ≤ns1,s2, ...,sn(1 ≤sisii-th group.51 2 4 3 3485思路贪心+双指针,先考虑简单的情况,给出此种情况下的粗略算法,再考虑复杂的情况,升级算法。先对小组的人数进行排序。简单的情况就是判断对于首尾两个指针,相应的小组人数是否小于等于4,满足条件则计数加1。当然,这是有缺陷的,因为像这样的数据,就不能得到正确的答案了。

m0_62504307的博客 1394

Codeforces Problem-158B Taxi

Codeforces Problem-158B Taxi 基本思想:   本题是一道思维题,主要说一下这个贪心算法:   假设人数为1的有w组、人数为2的有x组、人数为3的有y组、人数为4的有z组。   1. 当人数为4,直接ans++,即ans=z;   2. 当人数为3,ans++,如果这时候有人数为1的,顺带把1也带上,即y–,再判断w是否大于0,若成立则w–;   3. 当人数为2,ans+=x/2,然后判断一下有无剩余的,若有,则把人数为1的带上,这里强调一下,如果w<0也没关系,因为

BrilliantWilliam的博客 400

【优化&“调整”思想】VK Cup 2012 Qualification Round 1 / 158B Taxi(贪心)

B. Taxi http://codeforces.com/problemset/problem/158/B time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output A

AC,∑ndless 1065

Codeforces 158 B. Taxi[贪心/模拟/一辆车最多可以坐4人同一个群的小朋友必须坐同一辆车问最少需要多少辆车]...

http://codeforces.com/problemset/problem/158/B B. Taxi time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output After...

weixin_33921089的博客 248

【Codeforces】158B - Taxi

Problem Description: After the lessonsngroups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that thei-th group consists offriends (1 ≤  ≤ 4), ...

麦芽雪冷萃 979

codeforces-158B-Taxi题解

这题写的我简直醉醉的,一道不难的贪心,大致意思就是说让你输入n,然后输入n个数,每个数表示的是该组学生的数量(1 我的代码: #include #include #include using namespace std; int a[100010]; int main() {    int n,i;    int count;    int p1,p2,p3,p4;

cumtcyf的博客 660
上一篇: hdu1505 City game(最大子矩阵)
下一篇: 匈牙利算法
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值