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 }
- 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 数组属性和方法
- 如何查看微信好友已撤回的消息?
- 【Python爬虫】写一个爬取中国天气网的终端版天气预报爬虫
- 如何制定企业级代码规范与检查
- 哈希表:可以拿数组当哈希表来用,但哈希值不要太大!
- 【Python】Scrapy爬虫入门(一)Scrapy的基本用法和爬取静态网站
- 【动手学深度学习笔记】之读取和存储
- 据说这才是看热搜的正确方法?
- Ubuntu18.04安装Anaconda3和VSCode指南
- 微信小程序里如何使用npm?小程序集成友盟举例
- 听说你的表情包不够用了?
- 【Python】Python爬虫爬取中国天气网(二)
- C#和sql连接实例
- 【Python】五分钟画一条动态心形曲线~
- 三步修改jupyter notebook主题和页面宽度
- “为了看星星,我自己做了一个行星观测器”