【手把手刷CCF】202303-2-垦田计划100分(超简单思路,含详细解释注释与代码)

news/2024/11/24 13:42:47/

文章目录:

  • 故事的开头总是极尽温柔,故事会一直温柔……💜
  • 一、🌳代码如下:
  • 二、🌵解题思路
  • ❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭!

故事的开头总是极尽温柔,故事会一直温柔……💜

✨你好啊,我是“ 怪& ”,是一名在校大学生哦。
🌍主页链接:怪&的个人博客主页
☀️博文主更方向为:课程学习知识、作业题解、期末备考。随着专业的深入会越来越广哦…一起期待。
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
💪很高兴与你相遇,一起加油!

一、🌳代码如下:

#include <iostream>
#include <algorithm>using namespace std;
typedef long long ll;
const int N = 1e5+50;
ll n,m,k;
int t[N],c[N];ll cc[N];
int main(){cin>>n>>m>>k;int max_t=0,min_t=0;for(int i=1; i<=n; i++){cin>>t[i]>>c[i];cc[t[i]]+=c[i];max_t=max(max_t,t[i]);min_t=min(min_t,t[i]);}	for(int i=max_t; i>=k;i--){if(m > cc[i]){if(i==k){cout<<k<<endl;break;}m-=cc[i];cc[i-1]+=cc[i];}else{cout<<i<<endl;break;}}return 0;
} 

二、🌵解题思路

在这里插入图片描述 关键: 总耗时取决于耗时最长的区域,开垦耗时最小为k天
题意转化:如果顿顿剩余的m资源够当前最大的耗时t1的所有的k个田地缩小1个耗时,则m更新,t求解=t,计算更新后的剩余的m时候够当前最大的耗时t1-1

for(int i=1; i<=n; i++){cin>>t[i]>>c[i];cc[t[i]]+=c[i];max_t=max(max_t,t[i]);min_t=min(min_t,t[i]);}	

其中

cc[t[i]]+=c[i];

cc[i]存放的是开垦时间为i天的土地全缩减耗时一天所需要的资源量。
以上准备后,我们只需:

for(int i=max_t; i>=k;i--){if(m > cc[i]){if(i==k){cout<<k<<endl;break;}m-=cc[i];cc[i-1]+=cc[i];}else{cout<<i<<endl;break;}}

即:

  1. 全部田地缩减耗时至k时,输出k,并break。
  2. 剩余的m资源够当前最大的耗时i的所有的k个田地缩小1个耗时,则m更新,并将当前i的所需资源cc[i]加到cc[i-1]。(因为当前耗时i天的,更新后,皆变为所需耗时i-1天)
  3. 如果剩余的m资源够当前最大的耗时i的所有的k个田地缩小1个耗时,输出i即可。

综上所述,完成求解。

❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭!

🌻他回来了,带着光的。
❤️‍🔥brave、confident、earnest
🌈you can, we can.

在这里插入图片描述


http://www.ppmy.cn/news/43542.html

相关文章

【c++初阶】命名空间的定义

命名空间的定义一.缺陷二.namespace和::三.访问namespace四.一些注意1.工程里标准库的展开2.命名域的小技巧一.缺陷 在c语言中&#xff0c;如果我们同时定义一个全局变量和一个局部变量并且使用同一个名称的话&#xff0c;是可以编过的&#xff08;因为全局和局部是属于两个不同…

SSL/TLS协议实战详解

目录 1、什么是 SSL/TLS协议&#xff1f; 2、SSL协议和TLS协议的关系 3、如何使用SSL/TLS协议&#xff1f; 4、使用 HttpClient 发送一个SSL/TLS连接请求 5、浏览器端如何验证数字证书的合法性&#xff1f; 6、如何在Nginx服务器上配置SSL/TLS协议&#xff1f; 7、如何在…

简单明了的说明STM32的PWM原理以及实现方法

申明以下都是个人理解&#xff0c;仅供参考。如果错误欢迎指教。本文不讲底层&#xff0c;根据实际使用来逆向讲解。 1.什么是pwm&#xff1f; pwm最简单的理解就是“功率”&#xff0c;调节PWM的占空比就是调节功率。 2.如何调节占空比&#xff1f; 图1 根据图1很容易看出…

代码随想录打卡第58天|739. 每日温度;496.下一个更大元素 I

739. 每日温度 关键点1&#xff1a;先前的一些准备 单调栈&#xff1a;单调栈的含义->用栈记录已经遍历过的元素&#xff0c;再将0元素压入栈 结果集&#xff1a;与给定数组一样大小&#xff0c;结果集初始化为0 关键点2&#xff1a;核心部分 for循环遍历给定数组&#…

初阶数据结构之时间复杂度和空间复杂度(一)

文章目录[TOC](文章目录)前言1.什么是数据结构&#xff1f;2.什么是算法&#xff1f;3.数据结构和算法的重要性一、算法效率1.1如何衡量一个算法的好坏2.2算法的复杂度二.时间复杂度2.1时间复杂度的概念2.2举例说明2.3大O的渐进表示法三.空间复杂度3.1空间复杂度的概念3.2举例说…

https访问fastdfs图片

引用&#xff1a;https://blog.csdn.net/love8753/article/details/128872320 配置nginx 的SSL模块&#xff1a;https://www.cnblogs.com/ghjbk/p/6744131.html 获取ssl证书 将ssl证书&#xff0c;拷贝到服务器的一个目录下 nginx添加 http_ssl_module 最开始安装的nginx只有 …

Redis常见命令

Redis是典型的key-value数据库&#xff0c;key一般是字符串&#xff0c;而value包含很多不同的数据类型&#xff1a;1. Redis通用命令 通用指令是部分数据类型的&#xff0c;都可以使用的指令&#xff0c;常见的有&#xff1a; - KEYS&#xff1a;查看符合模板的所有key- KEYS…

JAVA开发(通过网关gateway过滤器进行返回结果加密)

在对C的网站或者APP后端接口中&#xff0c;参数的传输往往需要加密传输。这时我们 可以通过springcloud的网关过滤器进行统一的控制。 网关过滤器的执行顺序&#xff1a; 请求进入网关会碰到三类过滤器&#xff1a;当前路由过滤器、DefaultFilter、GlobalFilter。 请求路由后…