OpenJudge NOI 1.5 37:雇佣兵
【题目链接】
OpenJudge NOI 1.5 37:雇佣兵
【题目考点】
1. 模拟
2. < cmath >中的取整函数
- 向上取整函数
double ceil(double x)
,返回大于等于x的最小整数。 - 向下取整函数
double floor(double x)
,返回小于等于x的最大整数。 - 注意:两函数返回的返回值都是double类型的
【解题思路】
- 补血阶段:需要补M点血,每个能量元素最多补战斗力N点血,那么补血消耗能量元素个数为:⌈M/N⌉\lceil M / N \rceil⌈M/N⌉
- 战斗阶段:设当前战斗力为n。在这个战斗周期共有M天,连续战斗n天,战斗力上升1点,这一战斗周期战斗力可以上升⌊M/n⌋\lfloor M / n \rfloor⌊M/n⌋点。
- 循环进行补血阶段、战斗阶段,直到补血阶段将能量元素耗尽,无法补满血为止
【题解代码】
解法1:使用取整函数ceil, floor
#include <bits/stdc++.h>
using namespace std;
int main()
{int m, hp = 0, n, x;//hp: 体力值 cin>>m>>n>>x;while(true){x -= (int)ceil((double)m / n);//把体力值从0补到m,消耗能量元素if(x < 0)break; n += (int)floor((double)m / n);//这周期战斗力增加 }cout<<n;return 0;
}
解法2:用循环来模拟补血和战斗阶段
#include <bits/stdc++.h>
using namespace std;
int main()
{int m, hp = 0, n, x, nAdd;//hp: 体力值cin>>m>>n>>x;while(true){for(hp = 0; hp < m; hp += n)//补血到hp>=m时结束 x--;//每次用一个能量水晶,补n点血。n是当前战斗力 if(x < 0)break; nAdd = 0;//本轮能增加几点战斗力 for(int i = 1; i <= m; ++i)//m天战斗 {if(i % n == 0)//i是n整数倍的天数时,已经连续战斗n天,那么本轮战斗增加的点数加1nAdd++;}n += nAdd;//增加战斗点}cout<<n;return 0;
}
OpenJudge NOI 1.5 37:雇佣兵相关推荐
- 1.5.37:雇佣兵
Noi.openjudge.cn 1.5.37:雇佣兵 雇佣兵的体力最大值为M,初始体力值为0.战斗力为N.拥有X个能量元素. 当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体 ...
- openjudge 1.5.37 雇佣兵
OpenJudge - 37:雇佣兵 #include<bits/stdc++.h> using namespace std; int main() {int m,n,x;cin>& ...
- 1.5编程基础之循环控制 37 雇佣兵
http://noi.openjudge.cn/ch0105/37/ /* 1.5编程基础之循环控制 37 雇佣兵 http://noi.openjudge.cn/ch0105/37/ https:/ ...
- OpenJudge NOI 1.5编程基础之循环控制(31-40题)C++ 解题思路
续上一篇文章.OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章OpenJudge NOI 1.5编程 ...
- 【OpenJudge NOI】题解目录
[OpenJudge NOI]题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点.解题思路.题解代码.必要时也会给出不同的解题方法. 如有不足之处, ...
- OpenJudge NOI题库 1.5编程基础之循环控制
OpenJudge NOI题库 1.5编程基础之循环控制 OpenJudge - OpenJudge - 题目 1.5_01求平均年龄 1.5_01求平均年龄_哔哩哔哩_bilibili 1.5_02 ...
- 信息学奥赛一本通 1399:甲流病人初筛 | OpenJudge NOI 1.12 03:甲流病人初筛
[题目链接] ybt 1399:甲流病人初筛 OpenJudge NOI 1.12 03:甲流病人初筛 [题目考点] 1. 函数 2. 计数 [题解代码] 解法1:写函数判断一个人是不是初筛的甲流病人 ...
- 信息学奥赛一本通 1232:Crossing River | OpenJudge NOI 4.6 702:Crossing River
[题目链接] ybt 1232:Crossing River OpenJudge NOI 4.6 702:Crossing River 一本通里的翻译不够完整,OpenJudge中的英文原题中有对数据 ...
- 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命
[题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...
最新文章
- Centos7下安装MongoDB
- 网易严选全链路市场投放的数据产品策略
- 施一公:世界如此未知,还有什么物事必须难以释怀?
- android插件化-apkplug框架基本结构-01
- mysql 2006测试_狂神说MySQL06:事务和索引
- activemq使用
- HDU - 3518 Boring counting(后缀数组)
- linux中vi基础知识,Vim入门基础知识集锦
- linux 下的前端编程工具,Prepros Linux版(前端开发工具)
- 微信公众号开发之微信买单
- python写彩票预测软件_python写彩票预测软件
- 为啥Hibernate的HQL查询要使用别名呢?
- 聊天室群聊以及私聊功能的实现
- 数通基础 -- 二层交换技术
- 阿里妈妈技术团队5篇论文入选 KDD 2022
- Error: [$injector:unpr]错误解释
- 软式棒垒球运动进校园
- Photozoom图像放大的技术一二事
- 可口可乐公司旗下产品已检出核辐射物质严重超标 写一份新闻稿
- 不懂语言代码,超级菜鸟的建站分享(一):建站流程