当前位置: 首页 > news >正文

普及冲奖——贪心补题报告

T1.小可分身术

一.题目要求

小可学会了分身术,一开始有一只小可,接下来会进行k轮操作,每一轮中每一只小可都会变成p只小可。 要求k轮后小可的总数恰好为n。要求找到两个正整数p,k,使得p+k最大

输入描述

输入一个整数n。

输出描述

输出p+k的最大值。

输入样例

  1. 2

输出样例

  1. 3

数据描述

2≤𝑛≤1e18

二.解题思路

  1. ​问题转化​​:

    满足 p^k = n的条件下最大化 p + k。数学分析表明:

    • 当 p增大时,k会减小(因 n固定),但 p的增长对 p + k的贡献远大于 k的减少。

    • ​最优解​​出现在 p取最大值时,即 p = n,此时 k = 1(因 n^1 = n),此时 p + k = n + 1

三.代码
 

#include<iostream>
using namespace std;
int main(){long long n;cin>>n;cout<<n+1;return 0;
}

注意:这里的n的数据范围是10的18次方,所以要把n定义成long long类型

T2.小可吃点心

一.题目要求

小可爱吃甜点,现在桌子上摆着一排n个点心,每个点心具有一个甜度𝑎𝑖a​i​​,小可一次能吃连续的一些点心,但是他一次不能吃总甜度和超过m(可以等于m),否则他就长不高啦!小可想要知道他最少吃几次才能把这些点心都吃完。

输入描述

第一行输入两个整数n,m,代表点心数量和一次可以吃的总甜度上限。
第二行输入n个整数,第i个整数代表第i个点心的甜度𝑎𝑖a​i​​。

输出描述

输出一行,一个整数,代表小可吃的最少次数。

输入样例

  1. 5 6
  2. 4 2 4 5 1

输出样例

  1. 3

数据描述

0≤𝑛,𝑎𝑖≤100

𝑚𝑎𝑥(𝑎𝑖)≤𝑚

二.解题思路

  1. ​贪心策略​​:遍历数组,尽可能延长当前子段,直到加入下一个元素会导致甜度和超过 m。

  2. ​终止条件​​:当累计甜度即将超过 m时,结束当前子段,计数器加 1,并重置累计甜度为当前元素值(因为当前元素需归属到下一段)。

  3. ​边界处理​​:单个元素甜度若超过 m需单独分段(但题目保证 max(ai​)≤m,故无需额外处理)

三.代码

#include<iostream>
using namespace std;
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int n,m,a[105];int cnt=1,sum=0;cin>>n>>m;for(int i=1;i<=n;i++){int x;cin>>x;
http://www.dtcms.com/a/315229.html

相关文章:

  • MySQL详解
  • Docker 和Docker-compose常用命令
  • STM32标准库的工程创建
  • 推荐广告搜索三种业务的区别
  • 非机动车乱停放识别准确率↑37%:陌讯多特征融合算法实战解析
  • 04-Chapter02-Example01
  • 【cooragent多智能体】各个单智能体的输入与输出(实际案例)
  • Jmeter进阶(笔记)
  • 进程间通信:管道与共享内存
  • 亚马逊广告进阶:如何选择提曝光还是控曝光
  • 【C++】石头剪刀布游戏
  • Makefile文件写法模板
  • 刷题记录0804
  • app-1
  • 1行JS实现无限滚动加载(Intersection Observer版)
  • vcpkg在vs/vscode下用法
  • 南水北调中线工程图件 shp数据
  • 飞算 JavaAI 操作全流程体验:一次面向纯 Java 项目的智能提效之旅
  • 【无标题】标准 I/O 中的一些函数,按功能分类说明其用法和特点
  • JavaScript中的作用域、闭包、定时器 由浅入深
  • idea添加gitlab访问令牌
  • 【Canvas与文字】生存与生活
  • 2025年08月04日Github流行趋势
  • 工控领域协议之Modbus
  • prometheus应用CounterGauge
  • prometheus应用demo(一)接口监控
  • 【MySQL04】:基础查询
  • 初识SpringBoot
  • Java计算机网络面试题
  • 【BUUCTF系列】[SUCTF 2019]EasySQL1