计蒜客--贪心--淘宝流量分配
2018-08-22 23:30
316 查看
在每年的淘宝“双十一”时,访问量都会暴涨,服务器的请求会被流量分配程序按照一定策略,分发给不同的进程去处理。有一类请求,有两个进程可以接受分发的请求,其中一个进程所在服务器的配置、网络传输性能等都要优于另一个进程。流量分发程序可以知道队列中每个任务的预计处理时间,每次都会尽可能将队列中预计处理时间更多的任务分配给性能更优的进程。
假设队列当前一共有 nnn 个任务待分配,第 iii 个任务的预计处理时间为 ai(1≤i≤n)a_i(1 \leq i \leq n)ai(1≤i≤n)。由于服务存在冷启动问题,越靠后的进程,预计处理时间越短。而队列中的 最后一个任务 因为比较特殊,预计处理时间和之前的任务 无关。即前 n−1n-1n−1 个任务的预计处理时间满足 a1>a2>...>an−1a_1 > a_2 > ... > a_{n-1}a1>a2>...>an−1。现在要从中选出一个任务列表,不能有任何两个任务在原队列中相邻。计算选出的任务队列预计处理时间之和的最大值。
输入格式
输入第一行有一个整数 n(1≤n≤104)n(1 \leq n \leq 10^{4})n(1≤n≤104),表示任务总数。
输入第二行有 nnn 个整数 ai(0≤ai≤104)a_i(0 \leq a_i \leq 10^{4})ai(0≤ai≤104),表示每个任务的预计处理时间。
输出格式
输出一个整数,表示选出的任务的预计处理时间之和的最大值。
样例输入1
5 4 3 2 1 5
样例输出1
11
样例输入2
4 5 3 1 9
样例输出2
14
题目来源
解题思路:分n为奇数和偶数情况讨论:当n为奇数个时,只挑选奇数位(1,3,5...)一定为最大和;当n为偶数个时,只要挑选相邻两个数中较大的那个数即可。
[code]#include <iostream> #include <bits/stdc++.h> using namespace std; int a[10001]; int n; int main() { int sum = 0, maxn = 0; cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; if(n%2==1){//n为奇数 for(int i = 1; i <= n; i++){ if(i%2==1) sum += a[i]; } } else { for(int i = 1; i < n; i+=2){ if(a[i] >= a[i+1]){ sum += a[i]; } else { sum += a[i+1]; } } } cout << sum; return 0; }
阅读更多
相关文章推荐
- 计蒜客 淘宝流量分配 3-7
- 2016计蒜之道初赛第四场---------淘宝流量分配【水题】
- 2016计蒜之道-初赛-第四场-A-淘宝流量分配
- 淘宝流量分配(动态规划)
- 计蒜之道第四场第一题:淘宝流量分配
- 百度、腾讯有巨大流量,为什么在电子商务方向上撼动不了淘宝?
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配 (贪心+线段树)
- 计蒜客贪心之跳跃游戏
- Uva11054 等价转换 贪心策略:供需分配问题
- codevs 2072 分配房间(贪心+二分)
- HDU3661_assignments_活动分配_贪心
- 一个为无阻流量规则分配与端点规则实施而设计的通用最优化框架(一)
- 一个为无阻流量规则分配与端点规则实施而设计的通用最优化框架(四)
- 淘宝怎么做推广?史上最全的淘宝流量入口整理
- 1707: [Usaco2007 Nov]tanning分配防晒霜 (贪心)
- 【线性扫描ijk_贪心】candy 最少蛋糕分配、Trapping Rain water
- 淘宝CDN全局流量调度算法
- 淘宝卖家:流量暴跌谢谢淘宝给我们提前放假
- 让你的淘宝网店每天增加500~1000个流量的方法
- 改进遗传算法优化数据中心动态网络流量分配