Codeforces Round #324 (Div. 2) C (二分)
题目链接:http://codeforces.com/contest/734/problem/C
题意:
玩一个游戏,一开始升一级需要t秒时间,现在有a, b两种魔法,两种魔法分别有m1, m2种效果;
对应使用a1[i]魔法需要a2[i]金币,使用b1[i]魔法需要b2[i]金币;
每种魔法最多只能使用一次,问升到n(n<=1e+5)级最少需要多少时间;
注意:给出的b1, b2数组是升序排列的;
思路:对每一个a魔法找到最大的b1魔法jj, 即为使用此a魔法需要最少时间的情况;再找到所有jj中最小的即为答案;
因为b数组是排好序的,所以对于b数组的查找我们可以用二分;时间复杂度为nlog(n);
代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#define ll long long
#define MAXN 200009
using namespace std; ll min(ll a, ll b){
return a<b?a:b;
} int main(void){
int m1, m2;
ll aim, t, money, ans, a1[MAXN], a2[MAXN], b1[MAXN], b2[MAXN];
scanf("%lld%d%d%lld%lld", &aim, &m1, &m2, &t, &money);
for(int i=; i<m1; i++){
scanf("%lld", &a1[i]);
}
for(int i=; i<m1; i++){
scanf("%lld", &a2[i]);
}
for(int i=; i<m2; i++){
scanf("%lld", &b1[i]);
}
for(int i=; i<m2; i++){
scanf("%lld", &b2[i]);
}
ans=t*aim;
for(int i=; i<m1; i++){
ll gg=aim, mm=money;
if(a2[i]<=mm&&a1[i]<t){
ll tt=a1[i];
mm-=a2[i];
int pos=upper_bound(b2, b2+m2, mm)-b2;
if(pos>=m2){
gg-=b1[m2-];
}else if(pos>){
gg-=b1[pos-];
}
ll jj=gg*tt;
ans=min(ans, jj);
}
{
ll gg1=aim;
int pos=upper_bound(b2, b2+m2, money)-b2;
if(pos>=m2){
gg1-=b1[m2-];
}else if(pos>){
gg1-=b1[pos-];
}
ll jj=gg1*t;
ans=min(ans, jj);
}
}
printf("%lld\n", ans);
return ;
}
Codeforces Round #324 (Div. 2) C (二分)的更多相关文章
- Codeforces Round #324 (Div. 2)解题报告
---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...
- Codeforces Round #404 (Div. 2) C 二分查找
Codeforces Round #404 (Div. 2) 题意:对于 n and m (1 ≤ n, m ≤ 10^18) 找到 1) [n<= m] cout<<n; 2) ...
- Codeforces Round #377 (Div. 2)D(二分)
题目链接:http://codeforces.com/contest/732/problem/D 题意: 在m天中要考k个课程, 数组a中有m个元素,表示第a[i]表示第i天可以进行哪门考试,若a[i ...
- Codeforces Round #551 (Div. 2) E 二分 + 交互
https://codeforces.com/contest/1153/problem/E 题意 边长为n的正方形里面有一条蛇,每次可以询问一个矩形,然后会告诉你蛇身和矩形相交有几部分,你需要在最多2 ...
- Codeforces Round #350 (Div. 2) D2 二分
五一期间和然然打的团队赛..那时候用然然的号打一场掉一场...七出四..D1是个数据规模较小的题 写了一个暴力过了 面对数据如此大的D2无可奈何 现在回来看 一下子就知道解法了 二分就可以 二分能做多 ...
- Codeforces Round #324 (Div. 2) E. Anton and Ira 贪心
E. Anton and Ira Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
- Codeforces Round #324 (Div. 2) D. Dima and Lisa 哥德巴赫猜想
D. Dima and Lisa Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
- Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心
C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...
- Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
B. Kolya and Tanya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pro ...
随机推荐
- SpringDataJPA的几个使用记录
public Page<XMGLFileTemplateDTO> findXMGLFileTemplateByConditions(XMGLFileTemplateDTO xmglFile ...
- BPMN流程图的绘制的注意要点
1.分支网关的表达式,是在选择的线上设置. 2.在分支网关上,可以设置一个默认线的id. 3.并行网关,必须有开始,有结束.
- HDU 4803 Poor Warehouse Keeper
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4803 解题报告:有一个记录器,一共有两个按钮,还有两行屏幕显示,第一行的屏幕显示的是数目,第二行的屏幕 ...
- iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信
一.Info.plist常见的设置 1.建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 ...
- UNITY3d在移动设备上的一些优化实战(一)-概述
转自:UNITY3d在移动设备上的一些优化实战(一)-概述 http://blog.csdn.net/leonwei/article/details/39233921 项目进入了中期之后,就需要对程序 ...
- WEB前端知识在乱花渐欲迷人眼的当下,如何分清主次和学习优先级呢?
从正美的吐槽开始,我回了下,说对盲目跟风的大众失去信心了.然后一些同学说我固步自封,另一些同学估计想说倚老卖老啥的.我想说清楚一点,我从 未停止过学习,只是对知识的重要程度和精力分配有自己的观点.具体 ...
- 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
在某国外大型汽车公司BI项目中,有一个子项目,需要通过大屏幕展示销售报表,程序需要自动启动和关闭.开发人员在开发过程中,发现在Win7的service中不能直接操作UI进程,调查过程中,发现如 ...
- devstack查看服务日志
执行如下指令: $ screen -x stack 同时按ctrl和a键,然后同时按shift和'键(即"),就可以浏览到服务列表: 上下翻到要查看的服务,进入即可看到当前的运行日志.重启就 ...
- 【IDEA】IDEA 如何设置编辑器字体大小
intellij idea 如何更改编辑器文本字体和大小 换上了intellij idea之后,第一件事就是想要改变下文字字体,因为在我这个27寸的2k分辨率的屏幕上,文字显然太小了. intel ...
- JustMock Lite (Free Mocking Framework For .net)
通过 Nuget 安装 2. 官网下载(官网不行点这里) 3. 帮助文档 商业版和免费版区别概览 MockingContainer 测试类准备:一般来说也是业务类 public class C ...