【CF补题】【D】Educational Codeforces Round 125 (Rated for Div. 2) C++代码
D. For Gamers. By Gamers.
现有 n 种兵种,每种有单位招募代价、攻击力、生命值三个数值。需回答 m 次询问——每次询问给出魔王的攻击、生命,问在以下条件下,击败魔王至少需要花费多少代价?
- 只能选择一种兵种的士兵招募
- 任意士兵不能在战斗中死亡
- 魔王与士兵并非回合制战斗,造成伤害是连续的。
分析:因为士兵不能死亡,所以招募 k 个士兵单纯等于将其攻击力变为 k 倍。
所以浅薄观点是t*hi>De而且k*di>t*He //t是轮数,k是兵数
也就是k*hi*di>t*De*He,所以在输入时可以有一个总价值val=hi*di。
记maxval[cost]是在cost的花费下最大的价值
#include<bits/stdc++.h>
using namespace std;
long long a, ans;
long long n,b,x,y;
long long maxval[1000010];
int c, cost;
string s;int main()
{cin >> n >> c;for (int i = 1; i <= n; i++){cin >> cost >> x >> y;maxval[cost] = max(x * y, maxval[cost]);//在cost的花费下最大的价值}//注意只能单兵种,所以只能倍增for (int i = 1; i <= c; i++){for (int j = 2; j * i <= c; j++){maxval[i * j] = max(maxval[i * j], maxval[i] * j);}}for (int i = 1; i <= c; i++){maxval[i] = max(maxval[i], maxval[i - 1]);}int m;cin >> m;long long nedx, nedy;long long nedval;for (int i = 1; i <= m; i++) {cin >> nedx >> nedy;nedval = nedx * nedy;if (nedval >= maxval[c])cout << "-1 " ;//注意等于也要输出-1,是同归于尽else{long long ans = upper_bound(maxval + 1, maxval + 1 + c, nedval) - maxval;cout << ans << ' ' ;}}return 0;
}
——————————————————————————————————————————
备注upper_bound用法:
查找[first, last)区域中第一个大于 val 的元素。
upper_bound (数列头地址值, 数列尾地址+1, 要找数val);
lowerbound()查找的是容器中第一个小于等于目标值的元素的位置,
而upper_bound()查找的是容器中第一个小于目标值的元素的位置就。如果容器中的元素都比目标值大则返回最后一个元素的下一个位置。
【CF补题】【D】Educational Codeforces Round 125 (Rated for Div. 2) C++代码相关推荐
- 【CF比赛】Educational Codeforces Round 102 (Rated for Div. 2)
题目来源 Educational Codeforces Round 102 (Rated for Div. 2) A. Replacing Elements 只要判断最大值是否小于等于d,或者第一个值 ...
- Educational Codeforces Round 103 (Rated for Div. 2)前四题
Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...
- Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)
传送门 文章目录 题意: 思路: 题意: 思路: 我们将每一段...拿出来看成若干段,将其分成以下四种情况: (1)len<b(1)len<b(1)len<b (2)b≤len< ...
- Educational Codeforces Round 112 (Rated for Div. 2)
Educational Codeforces Round 112 (Rated for Div. 2) 题号 题目 知识点 A PizzaForces B Two Tables C Coin Rows ...
- Educational Codeforces Round 61 (Rated for Div. 2)(A、B、C、D、E、F)
欢迎访问本菜鸡的独立博客:Codecho 比赛名称 Educational Codeforces Round 61 (Rated for Div. 2) 比赛链接 https://codeforces ...
- Educational Codeforces Round 126 (Rated for Div. 2)(A-E)
A-Array Balancing 题意:给定两个数组a,b,a数组第i个数可以和b数组的第i个数交换,最终求 a1−a2|+|a2−a3|+⋯+|an−1−an||a1−a2|+|a2−a3|+⋯+ ...
- Educational Codeforces Round 117 (Rated for Div. 2)题解(A~D)
Educational Codeforces Round 117 (Rated for Div. 2) 今天这场没打,赛后从九点半到十一点把前面四个题目给补了一下,E题明天有时间看看能不能弄出来. A ...
- Educational Codeforces Round 138 (Rated for Div. 2)-赛后总结
Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces 总结一个教训就是不要心急,特别是对于一些题目, ...
- Educational Codeforces Round 122 (Rated for Div. 2) A B C D
Educational Codeforces Round 122 (Rated for Div. 2) A B C D A Div. 7 思路: 能被777整除,方法有很多种,因为要求最小次数,那么我 ...
最新文章
- 浅谈.NET(C#)与Windows用户账户信息的获取
- WINCE设备开机灰屏问题(很怪异)
- 发生了变化 触发器函数不能读它_2013年1月18日调试触发器“表发生了变化,触发器或函数不能读它”的出现原因,以及解决方案...
- Java 在 CMD 环境下编译
- 【数据结构与算法】之深入解析“寻找旋转排序数组中的最小值II”的求解思路与算法示例
- leetCode 28. Implement strStr() 字符串
- java中的 ok_java okhttp包的类特点
- 大数据之-Hadoop之HDFS的API操作_定位读取文件_只读取某个block的内容_案例---大数据之hadoop工作笔记0065
- 英特尔放出Linux微代码以修复Meltdown和Spectre漏洞
- 关于JM8.6中MAX_LIST_SIZE值的选取
- 数据库连接软件SQLyog 13.1.7 免费下载安装
- MySQL数据库安装教程
- 数据恢复原来是可以免费的!
- NOD32杀毒软件升级ID
- InnoSetup 使用
- 调用国家气象局天气接口
- Mybatisplus语句变成下划线_解决方法
- C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符
- 中南大学计算机学院教师名录,教师列表-中南大学商学院
- [yocto]基于poky项目创建自己的层并且在层中增加自己的配方文件
热门文章
- 复旦计算机学院党关系转接,关于2020级研究生党团员组织关系转接工作的通知...
- 传今日头条启动新一轮30亿美元融资,估值或达750亿美元,超过滴滴
- python实战演练(六)员工信息查询系统
- 荣耀magic5参数 荣耀magic5评测 怎么样
- 计算机考证可以直接考3级
- C51 函数cos()与acos()使用注意点
- R7000无web界面openwrt版安装GUI
- python发起ddos攻击_公司技术总监又教我个新技能, 用Python实现DDOS攻击! 分享给大家...
- 重庆自考本科一般多久能拿证?
- 【2022-SPSSPRO杯数学建模】C题污水流行病学原理在新冠疫情防控方面的作用 论文及代码