CSP 202305-2 垦田计划

news2024/12/29 0:46:04

 

直接用循环找最长天数的寻常写法只能拿15分,便运行超时结束了

#include <iostream>
using namespace std;
int main(){
    int n,m,k,t=0;
    cin>>n>>m>>k;
    auto*data=new pair<int ,int>[n];
    for(int i=0;i<n;i++){
        cin>>data[i].first>>data[i].second;
        t=t>data[i].first?t:data[i].first;
    }
    while(m>0&&t>k){
        for(int i=0;i<n;i++){
            if(t==data[i].first&&m>=data[i].second){
                data[i].first--;
                m-=data[i].second;
            }
        }
        t=k;
        int temp=t;
        for(int i=0;i<n;i++){
            t=t>data[i].first?t:data[i].first;
        }
        if(temp==t)
            break;
    }
    cout<<t;
}

改用最大堆进行存储,C++的优先队列是堆实现的,这里可以直接用,下面的代码可以拿到70分,依旧运行超时

#include<iostream>
#include<queue>
using namespace std;
int main(){
    int n,m,k,ti,ci;
    priority_queue<pair<int,int>>heap;
    cin>>n>>m>>k;
    while(n--){
        cin>>ti>>ci;
        heap.push({ti,ci});
    }
    while(m>heap.top().second){
        pair<int,int>top=heap.top();
        heap.pop();
        if(top.first==k)
            break;
        top.first--;
        m-=heap.top().second;
        heap.push(top);
    }
    cout<<heap.top().first;
}

换个思路,之前的思路都是一个一个的减的,测试样例最大达到了10亿,不能一个一个的减了,先将所有天数相同的合并在一起并从大到小排序,再将前一个的天数降到后一个天数并相加资源,下面这个代码可以拿到85分,错误

#include<iostream>
#include<map>
using namespace std;
int main(){
    long long n,m,k,ti,ci,t;
    map<long long,long long,greater<>>field;
    cin>>n>>m>>k;
    while(n--){
        cin>>ti>>ci;
        field[ti]+=ci;
    }
    for(auto it=field.begin();it!=field.end();it++){
        if(it== prev(field.end())){
            while(m>=it->second){
                t--;
                m-=it->second;
            }
            break;
        }
        auto next=it;
        next++;
        long long cost=it->second*(it->first-next->first);
        if(m<cost||t==k)
            break;
        t=next->first;
        m-=cost;
        next->second+=it->second;
    }
    t=t>=k?t:k;
    cout<<t;
}
 

经过多次测试,终于发现是当m<cost的时候不应该直接退出,因为m可能可以再减,虽然不能减到下一个,修改后的代码终于可以拿到100分

#include<iostream>
#include<map>
using namespace std;
int main(){
    long long n,m,k,ti,ci,t;
    map<long long,long long,greater<>>field;
    cin>>n>>m>>k;
    while(n--){
        cin>>ti>>ci;
        field[ti]+=ci;
    }
    for(auto it=field.begin();it!=field.end();it++){
        t=it->first;
        if(it== prev(field.end())){
            while(m>=it->second){
                t--;
                m-=it->second;
            }
            break;
        }
        auto next=it;
        next++;
        long long cost=it->second*(it->first-next->first);
        if(m<cost){
            while(m>=it->second){
                t--;
                m-=it->second;
            }
            break;   
        }
        m-=cost;
        next->second+=it->second;
    }
    t=t>=k?t:k;
    cout<<t;
}

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

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

相关文章

43.MQ—RabbitMQ

目录 一、MQ—RabbitMQ。 &#xff08;1&#xff09;同步调用与异步调用。 &#xff08;1.1&#xff09;同步调用。 &#xff08;1.2&#xff09;异步调用。 &#xff08;2&#xff09;MQ之间的区别。 &#xff08;3&#xff09;RabbitMQ学习。 &#xff08;3.1&#xf…

如何多号定时发朋友圈?

如何多号定时发圈&#xff1f; 通过定时发表朋友圈可以节省时间&#xff0c;保持账号信息更新的频率&#xff0c;在不同的适当时间进行宣传&#xff0c;让发布内容更精准的抵达目标客户&#xff0c;提高互动效果和阅读率&#xff0c;还可以防止朋友圈被折叠。 下面来看看是如何…

statistic learning outlook

supervised learning 贝叶斯估计 决策树与信息熵 信息熵 H ( D ) − ∑ i 1 n p ( X x i ) l o g ( P ( X x i ) ) − ∑ p i l o g ( p i ) H(D)-\sum_{i1}^n p(Xx_i)log(P(Xx_i))-\sum p_ilog(p_i) H(D)−∑i1n​p(Xxi​)log(P(Xxi​))−∑pi​log(pi​)&#xff0c;信…

帮助中心管理系统,人人都能用的知识管理平台

帮助中心管理系统是一种知识管理平台&#xff0c;旨在帮助企业有效组织和管理知识资源&#xff0c;使其能够为客户和员工提供快速、准确的帮助和支持。 关于帮助中心管理系统的重要特点和优势&#xff1a; 知识库管理&#xff1a; 帮助中心管理系统允许企业将知识组织和分类…

Vue3+Ts+Vite项目(第十二篇)——echarts安装与使用,vue3项目echarts组件封装

概述 技术栈&#xff1a;Vue3 Ts Vite Echarts 简介&#xff1a; 图文详解&#xff0c;教你如何在Vue3项目中引入Echarts&#xff0c;封装Echarts组件&#xff0c;并实现常用Echarts图例 文章目录 概述一、先看效果1.1 静态效果1.2 动态效果 二、话不多数&#xff0c;引入 …

Linux 内核 6.5 发布,首次支持 Wi-Fi 7 和 USB4

导读Linux 6.5 内核 已经推出&#xff0c;此次更新在 Linux 6.4 内核的基础上进行了进一步的开发&#xff0c;带来了值得注意的改变和新特性。 Linus Torvalds 表示&#xff0c;这是一次相对顺畅的发布&#xff1a; 上周并没有发生任何异常或惊人的事情&#xff0c;因此没有理…

大数据之yarn

Yarn概述 是一个资源调度平台&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MR相当于操作系统中运行的软件&#xff0c;比如QQ、微信。 基础架构 ResourceManager 处理客户端请求监控NodeManager启动或监控ApplicationMaster资源的分配与调度 NodeManager 管理单…

CSC关于进一步优化国家公派出国留学服务管理工作的通知

近日国家留学基金委&#xff08;CSC&#xff09;在其官网上发布了“关于进一步优化国家公派出国留学服务管理工作的通知”&#xff08;https://www.csc.edu.cn/chuguo/s/2676&#xff09;&#xff0c;知识人网小编原文转载如下。 为进一步优化国家公派出国留学人员有关服务管理…

【开箱即用】开发了一个基于环信IM聊天室的Vue3插件,从而快速实现仿直播间聊天窗功能

前言 由于看到有部分的需求为在页面层&#xff0c;快速的引入一个包&#xff0c;并且以简单的配置&#xff0c;就可以快速实现一个聊天窗口&#xff0c;因此尝试以 Vue3 插件的形式开发一个轻量的聊天窗口。 这次简单分享一下此插件的实现思路&#xff0c;以及实现过程&#xf…

Elasticsearch近实时架构

1 Elasticsearch 与 Lucene 的结构理解 一个Elasticsearch索引由一个或多个分片&#xff08;shards&#xff09;组成。这些分片可以是主分片&#xff08;primary shard&#xff09;或副本分片&#xff08;replica shard&#xff09;。每个分片都是一个独立的Lucene索引&#xf…

什么是Docker和Docker-Compose?

Docker的构成 Docker仓库&#xff1a;https://hub.docker.com Docker自身组件 Docker Client&#xff1a;Docker的客户端 Docker Server&#xff1a;Docker daemon的主要组成部分&#xff0c;接受用户通过Docker Client发出的请求&#xff0c;并按照相应的路由规则实现路由分发…

Shell命令切换root用户、管理配置文件、检查硬件

Shell命令切换root用户、管理配置文件、检查硬件 切换root用户 两种方法 su命令详细介绍 sudo命令详细介绍 /etc/passwd文件 /etc/passwd文件里为什么有乱七八糟的用户&#xff1f; /etc/shadow文件 管理配置文件 检查硬件命令 查看CPU 查看GPU 与其他基于UNIX的系统…

【Java基础篇 | 面向对象】—— 继承

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 继承允许一个类继承另一个…

buuctf crypto 【[HDCTF2019]basic rsa】解题记录

1.打开文件 2.套用脚本 import random from binascii import a2b_hex,b2a_hex p 262248800182277040650192055439906580479 q 262854994239322828547925595487519915551 n p * q def multiplicative_inversr(a,b): x 0 y 1 lx 1 ly 0 oa a ob…

Python项目开发:Flask基于Python的天气数据可视化平台

目录 步骤一&#xff1a;数据获取 步骤二&#xff1a;设置Flask应用程序 步骤三&#xff1a;处理用户输入和数据可视化 步骤四&#xff1a;渲染HTML模板 总结 在这个数字化时代&#xff0c;数据可视化已经成为我们理解和解释信息的重要手段。在这个项目中&#xff0c;我们…

干了三年的功能测试,让我女朋友跑了,太难受了...

简单概括一下 先说一下自己的情况&#xff0c;普通本科&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了3年多的功能测试&#xff0c;21年的那会&#xff0c;因为大环境不好&#xff0c;我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;我感觉自己不…

解疑答惑:独立部署类型的商城系统有哪些优势?

数字化时代&#xff0c;电子商务已成为企业蓬勃发展的重要组成部分。 为了满足不断增长的在线购物需求&#xff0c;企业需要一个强大而可靠的商城系统。独立部署类型的商城系统因其独特的优势而备受青睐。下面就独立部署商城系统的优势作一些简单介绍&#xff0c;并解释为什么它…

Python中使用item()方法遍历字典的例子

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 这篇文章主要介绍了Python中使用item()方法遍历字典的例子, for…in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 Python字典的遍历方法有好几种&#xff0c;其中一种是for…in&#xff0c;这个我就…

修改图片尺寸的几个简单方法

修改图片尺寸的几个简单方法~~图片&#xff0c;是我们常用的文件格式&#xff0c;也是日常生活与工作中重要的文件。图片记录了非常多的元素和内容&#xff0c;其中不乏有工作上的内容&#xff0c;也有对一些日常生活的记录。所以说&#xff0c;图片文件对我们来说是非常重要的…

使用轻薄款电子价签,有什么样的改价体验?

在数字化的潮流之中&#xff0c;「轻薄」逐渐成为ESL电子标签的强大优势&#xff0c;让商品管理更高效&#xff0c;货架保持统一高端的形象。云里物里最新发布了一款纤薄ESL电子标签&#xff0c;DS029厚度仅有9.8mm&#xff0c;在36g的轻巧身躯上融入了强大功能&#xff0c;将为…