码迷,mamicode.com
首页 > 其他好文 > 详细

2015 计蒜之道 初赛(4)爱奇艺的自制节目(枚举 贪心)

时间:2017-05-19 00:04:36      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:http   作品   .com   思路   调整   enter   space   sam   开始   

爱奇艺的自制节目

                       

爱奇艺作为一家视频网站巨头,要为上亿的用户每天都提供“悦享品质”的服务。除了引进一些优秀的影视作品外,爱奇艺还做了一些诸如奇葩说、晓松奇谈的自制节目。爱奇艺最近又准备制作四档新的节目,它们分别是 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("%lld\n",ans);
43         }
44     }
45     return 0;
46 }

 

                                    

2015 计蒜之道 初赛(4)爱奇艺的自制节目(枚举 贪心)

标签:http   作品   .com   思路   调整   enter   space   sam   开始   

原文地址:http://www.cnblogs.com/ECJTUACM-873284962/p/6876133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!