2015 计蒜之道 初赛(4)爱奇艺的自制节目(枚举 贪心)
爱奇艺的自制节目
爱奇艺作为一家视频网站巨头,要为上亿的用户每天都提供“悦享品质”的服务。除了引进一些优秀的影视作品外,爱奇艺还做了一些诸如奇葩说、晓松奇谈的自制节目。爱奇艺最近又准备制作四档新的节目,它们分别是 W, X, Y, Z;但是现在能用来录这些节目的演播室只有两个,分别是演播室 A 和演播室 B。
W 节目的现场搭建比较复杂,每一期都要在演播室 A 来录制,X 节目的摄影机位调整会影响节目质量,每一期都固定在演播室 B 来录制。而节目 Y 和节目 Z 的搭建都比较容易移动,摄影也没有特别的要求,既可以在演播室 A 录制,也可以在演播室 B 录制。
已知 W 节目一共 Ew 期,每期录制需要 w 分钟;X 节目一共 Ex 期,每期录制需要 x 分钟;Y 节目一共 Ey 期,每期录制需要 y 分钟;Z 节目一共 Ez 期,每期录制需要 z 分钟。
每一期节目从开始到结束必须在同一个演播室内录制,而整个节目不必每一期都在同一个演播室内录制。现在爱奇艺希望在最短时间内在这两个演播室内将四档节目录制完成,在节目都连续录制的假设下,你能帮他们算出将节目全部录制完成所需的最短时间么?
输入格式
第一行输入一个整数 T (1 ≤ T ≤ 50),表示数据组数。
接下来一共输入 T 行数据,每行输入一组 8 个整数 Ew, Ex, Ey, Ez, w, x, y, z (1 ≤ Ew, Ex, Ey, Ez, w, x, y, z ≤ 106)。
输出格式
输出 T 行,每行一个整数,表示该组四档节目在连续录制的假设下,全部录完所需要的最短时间。
样例输入
1
100 1 3 5 10 1 10 10
样例输出
1000
题目链接:https://nanti.jisuanke.com/t/430
解题思路:
暴力枚举节目Y在A演播室的天数,然后贪心。
注意INF的取值。
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 #define INF 1ll<<60
5 int main()
6 {
7 ll T;
8 while(scanf("%lld",&T)!=EOF)
9 {
10 while(T--)
11 {
12 ll Ew,Ex,Ey,Ez,w,x,y,z;
13 cin>>Ew>>Ex>>Ey>>Ez>>w>>x>>y>>z;
14 ll tw=Ew*w;
15 ll tx=Ex*x;
16 if(y<z)
17 {
18 swap(Ey,Ez);
19 swap(y,z);
20 }
21 ll ans=INF;
22 for(ll i=0;i<=Ey;i++)
23 {
24 ll ta=tw+i*y;
25 ll tb=tx+(Ey-i)*y;
26 ll sum;
27 if(ta>tb)
28 swap(ta,tb);
29 ll tmp=(tb-ta)/z;
30 if(Ez<=tmp)
31 sum=tb;
32 else
33 {
34 ta+=tmp*z;
35 ll left=Ez-tmp;
36 if(left%2==1)
37 sum=ta+((left+1)/2)*z;
38 else sum=tb+left/2*z;
39 }
40 ans=min(ans,sum);
41 }
42 printf("%lldn",ans);
43 }
44 }
45 return 0;
46 }
- 颠覆者的游戏:程序语言
- CTF| SQL注入之login界面
- 懒惰的力量
- 让AI自动修复程序中的bug:微软亚洲研究院新研究 | 附论文
- OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析二
- Javascript: 世纪机器语言?
- OpenDaylight与Mininet应用实战之基本环境搭建一
- 永恒不变的魅力
- MobileNet教程(2):用TensorFlow搭建安卓手机上的图像分类App
- OpenDaylight与Mininet应用实战之流表操作三
- 天啊,这个围笑代表什么?麻省理工的AI比你更懂 | 论文+Demo
- elixir:灵丹妙药?or 徒有其名?
- OpenDaylight与Mininet应用实战之三层转发机制四
- 程序员效率指南
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用IDEA整合spring4+spring mvc+hibernate
- springmvc中@PathVariable和@RequestParam的区别
- centos7 安装mysql5.6
- bashdb安装及调试shell脚本
- linux awk指令详解
- linux sed指令详解
- Grafana使用zabbix自定义模板
- linux shell之变量的使用规则
- 第11期:压缩表
- grafana-zabbix插件安装和配置zabbix mysql
- grafana使用教程之API key
- Grafana使用教程之安装
- Java基础数据类型之包装类equals和==详解
- SCP不用密码传输文件
- Java 使用Collections.reverse对list集合进行降序排序