MT2076 小码哥处理订单

news2025/1/16 3:39:35

 

思路:

使用二分:题目中隐含条件:如果不满足,需要找到第一个不满足的订单。

二分法需要满足单调性or有一个界线使前后两部分性质相反。这里的”界线“为:是否满足条件。假设第i天无法满足,则后面的所有天都无法满足,前面的天都可以满足。即此时的i为要求的答案

代码: 

1.二分+差分

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, m;
int r[N];
int d[N], s[N], t[N];
int ans;
int a[N], b[N]; // 差分和前缀和数组

bool check(int num) // 判断此订单是否满足条件
{
    memset(a, 0, sizeof(a));
    for (int i = 1; i <= num; i++)//遍历订单
    { // 差分
        a[s[i]] += d[i];
        a[t[i] + 1] -= d[i];
    }
    for (int i = 1; i <= n; i++)//遍历天数 
    { // 前缀和
        b[i] = b[i - 1] + a[i];
        if (b[i] > r[i])
        {
            return true;
        }
    }
    return false;
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> r[i];
    }
    for (int i = 1; i <= m; i++)
    {
        cin >> d[i] >> s[i] >> t[i];
    }
    int l = 1, r1 = m; // 搜索空间:1-m
    if (!check(m))
    {
        cout << 0;
        return 0;
    }
    int mid;
    while (l <= r1)
    {
        mid = (l + r1) / 2;
        if (check(mid))
        {
            ans = mid;
            r1 = mid - 1;
        }
        else
        {
            l = mid + 1;
        }
    }
    cout << -1 << endl;
    cout << ans;
    return 0;
}

2.暴力

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, m;
int r[N];
int d, s, t;
int ans;
int day[N];
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> r[i];
    }
    for (int i = 1; i <= m; i++)
    {
        cin >> d >> s >> t;
        if (ans == 0)
        {
            for (int j = s; j <= t; j++) // 遍历每天
            {
                day[j] += d;
                if (r[j] < day[j])
                {
                    ans = i;
                    break;
                }
            }
        }
    }
    if (ans == 0)
    {
        cout << 0;
    }
    else
    {
        cout << -1 << endl;
        cout << ans;
    }
}

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

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

相关文章

【跟着例子学MySQL】SQL进阶 – 视图、事务和变量

文章目录 前言回顾视图事务用户变量未完待续 前言 举例子&#xff0c;是最简单有效的学习方法。本系列文章以一个贯穿始终的场景&#xff0c;结合多个实例讲解MySQL的基本用法。 ❔ 为什么要写这个系列&#xff1f; 模仿是最好的老师&#xff0c;实践是检验成果的方法。本系列…

OWASP top10--SQL注入(四、sqlmap安装及使用)

目录 sqlmap工具安装&#xff1a; 工具说明&#xff1a; 主要功能特性包括&#xff1a; 基本使用示例&#xff1a; 先下载python2.7.9版本 sqlmap运行 sqlmap工具使用 -u -r –-levelLEVEL扫描深度级别 --riskRISK 执行测试的风险 -threads 线程数 -batch-smart智能…

【源码】多语言H5聊天室/thinkphp多国语言即时通讯/H5聊天室源码/在线聊天/全开源

多语言聊天室系统&#xff0c;可当即时通讯用&#xff0c;系统默认无需注册即可进入群聊天&#xff0c;全开源 【海外聊天室】多语言H5聊天室/thinkphp多国语言即时通讯/H5聊天室源码/在线聊天/全开源 - 吾爱资源网

Java集合—Set(Collection子接口)及其子类(HashSet、LinkedHashSet)包括HashMap源码分析

Set接口是 Collection接口的子接口。 1、无序&#xff0c;即添加元素和去除元素的顺序不一致。 但是每次取出的顺序是一致的。 2、不允许重复元素&#xff0c;可以有null&#xff0c;但只能有一个。 3、实现类很多&#xff0c;主要介绍HashSet、LinkedHashSet 和 TreeSet。 常用…

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么&#xff1f; 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求&#xff0c;使用自有系统…

PS系统教学02

多个图片同时进行打开 在素材库里面选中两张图片&#xff0c;直接拖进PS软件中&#xff0c;此时会显示其中一张。当按下回车键会显示另一张。 当图层过多&#xff0c;需要进行选择&#xff0c;其中某一张图片&#xff0c;按住Ctrl键&#xff0c;进行选择点击&#xff0c;可以移…

Windows下切换不同版本的CUDA

在环境变量处将需要使用的CUDA版本的如图所框选的环境变量移到其他版本环境变量的前方即可 PS&#xff1a;改环境变量后重启命令行再查看版本~

【Jmeter】性能测试之压测脚本生成,也可以录制接口自动化测试场景

准备工作-10分中药录制HTTPS脚本&#xff0c;需配置证书 准备工作-10分中药 以https://www.baidu.com/这个地址为录制脚本的示例。 录制脚本前的准备工作当然是得先把Jmeter下载安装好、JDK环境配置好、打开Jmeter.bat&#xff0c;打开cmd&#xff0c;输入ipconfig&#xff0c;…

SpringMVC枚举类型字段处理

在日常的项目开发中经常会遇到一些取值范围固定的字段&#xff0c;例如性别、证件类型、会员等级等&#xff0c;此时我们可以利用枚举来最大程度减少字段的乱定义&#xff0c;统一管理枚举的值。 SpringMVC中对于枚举也有默认的处理策略&#xff1a; 对于RequestParam&#xf…

将金融文件转化为ASP.NET Core C#中的智能且安全的表单

在财务流程中&#xff0c;法律要求所有协议和合同均需有纸质副本。无论您使用的是移动数据采集前端、功能强大的文档查看器还是任何其他数据采集流程&#xff0c;最终结果都是经过数字签名的 PDF 或纸质副本。 在大流行期间&#xff0c;数字文档处理变得流行且必要。这些年来&…

高边坡监测常用的主要仪器设备

随着人类的发展&#xff0c;近几年由于人类生活生产的破坏&#xff0c;地球环境不断恶化。鉴于这一现象&#xff0c;监测行业也随之应运而生。常见的监测类型有&#xff1a;边坡监测&#xff0c;地灾监测&#xff0c;水库监测&#xff0c;大坝监测&#xff0c;矿山监测&#xf…

KineFX —— 简介

KineFX是绑定和动画的框架和工具集&#xff0c;可在SOP级别创建和编辑角色&#xff1b;可从头创建自己的KineFX角色&#xff0c;或使用特定的KineFX SOP和常规的SOP去编辑导入的角色和动画&#xff1b; 程序化绑定 KineFX构建与程序化绑定的原则上&#xff0c;可快速非破坏性迭…

Java基础入门day60

day60 购物车案例补充 设置欢迎页 打开也系统&#xff0c;就可以直接看到商品列表页面 之前曾经设置过欢迎页&#xff0c;都是针对页面&#xff0c;可以有html页面&#xff0c;也可以有jsp页面 但是今天我们将一个servlet设置成欢迎页 在web.xml文件中设置欢迎页 <welcome…

初探Flask:Pycharm社区版创建Flask项目

文章目录 一、创建工程二、引入Flask库1.使用命令行安装Flask2.在PyCharm中安装Flask 三、创建Flask框架基本文件四、运行项目 本文将带您一步步创建一个简单的Flask项目&#xff0c;包括设置Python环境、安装Flask库以及创建基本的项目结构。 一、创建工程 首先&#xff0c;确…

找到可靠的APP外包开发公司

找到可靠的APP外包开发公司需要经过一系列细致的筛选和评估。以下是寻找和选择一家合适的APP外包开发公司的步骤和注意事项。选择一家可靠的APP外包开发公司需要经过详细的研究和多方面的评估&#xff0c;确保公司能够满足项目需求并提供高质量的服务。北京木奇移动技术有限公司…

【乐吾乐3D可视化组态编辑器】灯光

灯光 在场景属性中&#xff0c;我们介绍了HDR&#xff0c;它的作用是为场景提供环境光&#xff0c;如果网格设置了PBR材质&#xff0c;那么网格表面就会反射出光照效果。这是为场景提供环境光的手段之一&#xff0c;但是它也有缺陷&#xff0c;一是只对PBR材质有效&#xff0c…

采用Java+ SpringBoot+ IntelliJ+idea开发的ADR药物不良反应监测系统源码

采用Java SpringBoot IntelliJidea开发的ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统具有广泛的应用场景&#xff0c;以下是一些主要的应用场景&#xff1a…

MT3048 区间按位或

思路&#xff1a; 使用ST表。ST表求区间最大值改为按位或即可。 ST模板可参考MT3024 maxmin 代码&#xff1a; 1.暴力6/10 #include <bits/stdc.h> using namespace std; const int N 2e5 10; const int M 5e5 10; int n, m; int num[N]; int main() {cin >&…

前端实习记录——git篇(公司拉取项目流程)

实习中第一步就是拉取项目&#xff0c;看项目代码&#xff0c;下面总结一下我在公司项目拉取项目流程。 1、联系leader开通gitlab账号 2、查看/配置git用户名和密码 &#xff08;1&#xff09;查看 git config user.name git config user.email git config user.password &…

8086 汇编笔记(二):寄存器(内存访问)

一、内存中字的存储 字单元的概念&#xff1a;字单元&#xff0c;即存放一个字型数据(16 位)的内存单元&#xff0c;由两个地址连续的内存单元组成 由上一章学习可知&#xff1a;高地址内存单元中存放字型数据的高位字节&#xff0c;低地址内存单元中存放字型数据的低位字节 …