【每日一题】【区间合并】【贪心 模拟】多米诺骨牌 牛客小白月赛99 E题 C++

news2024/11/16 7:46:15

牛客小白月赛99 E题

多米诺骨牌

题目背景

牛客小白月赛99

题目描述

在这里插入图片描述

样例 #1

样例输入 #1

3
6 1
1 1 1 3 2 1
4 3 2 7 9 11
6 2
1 1 1 3 2 1
4 3 2 7 9 11
5 4
1 4 1 1 2
1 2 3 6 8

样例输出 #1

3
6
5

做题思路

按照玩多米诺骨牌的方式。

先将多米诺骨牌按照骨牌位置从小到大排序,相当于摆放好多米诺骨牌。

接着从第一个多米诺骨牌遍历到最后一个多米诺骨牌。

在此期间如果第 i i i个多米诺骨牌的位置在 i − 1 i-1 i1个多米诺骨牌的倒下范围内,那么“这一堆”多米诺骨牌倒下的个数+1 ; 否则从新开“一堆”多米诺骨牌,并且设置多米诺骨牌倒下个数为1。

最后按照从大到小顺序对“每一堆”多米诺骨牌倒下个数进行排序。

最后取 m i n ( m , 堆数 ) min(m,堆数) min(m,堆数)次多米诺骨牌倒下个数的和作为答案即可。

核心代码:

for(int i=1;i<=n;i++){
        if(i == 1 || dmn[i].x > last){ // 是第一个多米诺骨牌||不会被前面连带推倒
            sum[++cnt] = 1;//“这一堆”多米诺骨牌倒下个数设为1
            last = max(last , dmn[i].x + dmn[i].h);//维护多米诺骨牌倒下范围最大值
        }
        else{
            sum[cnt] ++;//“这一堆”多米诺骨牌倒下个数加一
            last = max(last , dmn[i].x + dmn[i].h);
        }
    }

代码

#include <iostream>
#include <algorithm>
#define int long long
using namespace  std;
const int N = 2e7+10;
int n , m ,k , w , q;
int cnt ,  sum[N];
struct Dmn{
    int h , x;
}dmn[N];
void init(){}
inline int read()
{
    char c=getchar();int x=0,f=1;
    while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
void solve(){
    n=read();m=read();
    for(int i=1;i<=n;i++){
        dmn[i].h = read();
    }
    for(int i=1;i<=n;i++){
        dmn[i].x = read();
    }
    sort(dmn+1,dmn+1+n,[&](Dmn a , Dmn b){return a.x < b.x;});
    cnt = 0;
    int last = 0;
    for(int i=1;i<=n;i++){
        if(i == 1 || dmn[i].x > last){ // 是第一个多米诺骨牌||不会被前面连带推倒
            sum[++cnt] = 1;//“这一堆”多米诺骨牌倒下个数设为1
            last = max(last , dmn[i].x + dmn[i].h);//维护多米诺骨牌倒下范围最大值
        }
        else{
            sum[cnt] ++;//“这一堆”多米诺骨牌倒下个数加一
            last = max(last , dmn[i].x + dmn[i].h);
        }
    }
    sort(sum+1,sum+cnt+1,greater<int>());
    int ans = 0;
    for(int i=1;i<=min(cnt,m);i++)ans+=sum[i];
    cout << ans << '\n';
}
signed main(){
    init();
    int _=1;_=read();
    while(_--)solve();
    return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ai伴学之“修图”

偶一张孩子专注的抓拍&#xff0c;通过与ai探讨修图心得让做图理念更完备。 (笔记模板由python脚本于2024年08月25日 18:23:49创建&#xff0c;本篇笔记适合喜欢搞图的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a…

JAVA_10

JAVA_10 JAVA异常机制及bug追踪1. 异常 JAVA异常机制及bug追踪 1. 异常 英文:Exception 所谓异常处理&#xff0c;就是指程序在出现问题时依然可以正确的执行完。Java面向对象处理异常过程 抛出异常:在执行一个方法时&#xff0c;如果发生异常&#xff0c;则这个方法生成代表…

Layer-refined Graph Convolutional Networks for Recommendation【ICDE2023】

Layer-refined Graph Convolutional Networks for Recommendation 论文&#xff1a;https://arxiv.org/abs/2207.11088 源码&#xff1a;https://github.com/enoche/MMRec/blob/master/README.md 摘要 基于图卷积网络&#xff08;GCN&#xff09;的抽象推荐模型综合了用户-项目…

Chainlit接入FastGpt接口完美对接,实现全新的用户聊天界面

前言 由于fastgpt只提供了一个分享用的网页应用&#xff0c;网页访问地址没法自定义&#xff0c;虽然可以接入NextWeb/ChatGPT web等开源应用。但是如果我们想直接给客户应用&#xff0c;还需要客户去设置配置&#xff0c;里面还有很多我们不想展示给客户的东西怎么办&#xf…

# 利刃出鞘_Tomcat 核心原理解析(九)-- Tomcat 安全

利刃出鞘_Tomcat 核心原理解析&#xff08;九&#xff09;-- Tomcat 安全 一、Tomcat专题 - Tomcat安全 - 配置安全 1、 删除 tomcat 的 webapps 目录下的所有文件&#xff0c;禁用 tomcat 管理界面. 如下目录均可删除&#xff1a; D:\java-test\apache-tomcat-8.5.42-wind…

轻松实现PDF转图片!2024四大实用工具推荐!

有时候我们需要将PDF文件中的内容转换为图片格式&#xff0c;以便在不同的平台和设备上更好地展示和分享。"PDF转图片"这一需求催生了众多转换工具的出现&#xff0c;它们以高效、便捷的服务帮助用户轻松实现格式转换。 福昕PDF转换大师&#xff08;365客户端&#…

JAVA Future类详解

在编程中&#xff0c;Java中的"Future"是一个接口&#xff0c;代表是作为主线程开辟的一个分支任务&#xff0c;处理耗时的业务&#xff0c;并且可以可以为主线程最终返回异步计算的结果。此外&#xff0c;它提供了检查计算是否完成&#xff0c;等待其完成&#xff0…

ISP 3A 算法:自动曝光(AE)中的平均亮度法详解

在自动曝光&#xff08;AE&#xff09;算法中&#xff0c;平均亮度法是一种经典且广泛应用的技术。它通过计算场景中所有像素的平均亮度来确定最佳曝光设置&#xff0c;从而保证图像的整体亮度处于适当的水平。尽管该方法相对简单&#xff0c;但它在AE算法中扮演着重要的角色&a…

仕考网:专科考公好考吗?有岗位吗?

2024年&#xff0c;国家公务员以及大多数省市的公务员考试接受至少拥有大专学历的考生。某些特定职位&#xff0c;例如上海市和北京市的岗位&#xff0c;可能要求考生必须持有本科或以上学历才能参与考试。 属于国家公务员考试、省直属单位、市直属单位以及中央直属单位的职位…

奥斯卡影后斯特里普和马丁肖特在最近的这次约会后再次引发热议

奥斯卡影后斯特里普和马丁肖特在最近的这次约会后再次引发热议 2024-08-24 00:00 发布于&#xff1a;河北省 自从梅丽尔斯特里普于 2023 年与相恋多年的丈夫分手以来&#xff0c;媒体对她的关注度只增不减。毕竟&#xff0c;这是好莱坞最著名的女演员 40 多年来第一次单身&…

手机投屏到电脑显示(Android -> win11)

文章目录 1.电脑安装“无线显示”功能2.系统->投影到此电脑3.手机进入无线投屏功能更 1.电脑安装“无线显示”功能 选择 “开始 ”> “设置 ”> “系统 > 投影到此 PC ”。 在 Add the ‘Wireless Display’ optional feature to project to this PC &#xff08;…

ELK进阶-安全认证设置流程介绍

目录 一、前言 二、ElasticSearch的安全认证配置 设置ElasticSearch的安全认证功能&#xff08;最低&#xff09; 启用TLS/SSL加密通信 &#xff08;1&#xff09;生成CA证书 &#xff08;2&#xff09;生成transport证书 &#xff08;3&#xff09;生成http证书 &#…

小米汽车每台亏6万,背后的认知格局

最近&#xff0c;小米汽车传出一则新闻&#xff1a;一台车亏损了6万块钱。这则消息一出&#xff0c;遭到了同行车企负责人的谩骂&#xff0c;并对雷军进行了直接攻击。对方指责雷军&#xff1a;“你亏损6万块钱还卖车干什么&#xff1f;你就是因为不亏卖不掉&#xff0c;所以才…

宠物毛发不除对身体有什么危害?除毛好的小型空气净化器分享

身为呼吸科医生&#xff0c;我亲眼见证过不少因环境因素导致的呼吸问题。在享受养猫乐趣的同时&#xff0c;我也时刻关注着它们可能带来的健康隐患&#xff0c;尤其是毛发中的细菌问题。我发现&#xff0c;不少年轻人对宠物毛发可能携带的细菌威胁缺乏足够认识。今天&#xff0…

golang多版本管理工具g

一、golang多版本管理工具g 一&#xff09;g简介 g是一个Linux、macOS、Windows下的命令行工具&#xff0c;可以提供一个便捷的多版本go环境的管理和切换 二&#xff09;g特性 支持列出可供安装的go版本号支持列出已安装的go版本号支持在本地安装多个go版本支持卸载已安装的go…

数据缓存软件Redis推出Redis 8 这更改许可证后首个重大版本更新

2024 年 3 月流行的数据库缓存应用 Redis 宣布修改开源许可证&#xff0c;此次修改许可证的目的本质上就是避免大型云计算公司白嫖&#xff0c;例如亚马逊的 AWS 等。AWS 等云计算服务商基于 Redis 推出托管服务并向客户收费&#xff0c;作为开发商 Redis 并没有获得收益&#…

还没做过电子版招生简章的老师看过来!

随着科技的不断发展&#xff0c;传统的招生简章逐渐走向数字化&#xff0c;电子版招生简章以其便捷、环保、可更新等优势&#xff0c;越来越受到各学校的青睐。如果你还不会制作电子版招生简章&#xff0c;那就赶紧来看看这篇文章吧&#xff01; 一、电子版招生简章的优势 1. …

【PHP入门教程】PHPStudy环境搭建+composer创建项目

文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 Composer安装 Composer&#xff1a;安装途中报错解决&#xff1a;初始化项目创建文件最终文件目录Compo…

记录练习reserve(强网先锋ADmingyue)

1.强网 64位无壳&#xff0c;ida拖入。 复制qiangwangxianfengjiushini到v6缓冲区&#xff0c;拷贝ZmxhZ3ttYWZha3VhaWxhaXFpYW5kYW9ifQ前36个字符(正好是36)到v5缓冲区&#xff0c;因为存在“”符号&#xff0c;应该是base64&#xff0c;下文for循环遍历v4与v5的每个字符(即解…

k8s跨节点后pod无法访问

场景 k8s在node1节点部署nginx后&#xff0c; 除node1外&#xff0c;主节点以及node2节点都无法正常访问nginx 并且主节点以及node2节点都无法ping通node1节点上的pod 网络插件为calico 并且也没有相关路由信息 解决方案 启动tunl0接口&#xff0c;因为calico需要使用tunl0网…