题目描述

After several months of rehearsal, the cows are just about ready to put on their annual dance performance; this year they are performing the famous bovine ballet "Cowpelia".

The only aspect of the show that remains to be determined is the size of the stage. A stage of size KKK can support KKK cows dancing simultaneously. The NNN cows in the herd (1≤N≤10,0001 \leq N \leq 10,0001≤N≤10,000) are conveniently numbered 1…N1 \ldots N1…N in the order in which they must appear in the dance. Each cow iii plans to dance for a specific duration of time d(i)d(i)d(i). Initially, cows 1…K1 \ldots K1…K appear on stage and start dancing. When the first of these cows completes her part, she leaves the stage and cow K+1K+1K+1 immediately starts dancing, and so on, so there are always KKK cows dancing (until the end of the show, when we start to run out of cows). The show ends when the last cow completes her dancing part, at time TTT.

Clearly, the larger the value of KKK, the smaller the value of TTT. Since the show cannot last too long, you are given as input an upper bound TmaxT_{max}Tmax​ specifying the largest possible value of TTT. Subject to this constraint, please determine the smallest possible value of KKK.

经过几个月的排练,奶牛们基本准备好展出她们的年度舞蹈表演。今年她们要表演的是著名的奶牛芭蕾——“cowpelia”。

表演唯一有待决定的是舞台的尺寸。一个大小为K的舞台可以支持K头牛同时在舞台上跳舞。在牛群中的N头牛(1<=N<=10,000)按照她们必须出现在舞蹈中的顺序方便地编号为1..N。第i头牛计划跳d[i]的特定持续时间。一开始,第1..K头牛出现在舞台上并开始跳舞。当这些牛中的某一头牛首先完成了她的部分,她会马上离开舞台并且第K+1头牛会出现在舞台上并开始跳舞。所以,舞台上总有K头奶牛在跳舞(直到表演的尾声,奶牛不够的时候)。当最后一头奶牛完成了她的舞蹈部分,表演结束,共花了T个单位时间。

显然,K的值越大,T就越小。由于表演不能拖太长,你得知了指定T的最大可能值的上限T-max。请根据这个约束,确定K的最小值。

输入输出格式

输入格式:

The first line of input contains NNN and TmaxT_{max}Tmax​, where TmaxT_{max}Tmax​ is an integer of value at most 1 million.

The next NNN lines give the durations d(1)…d(N)d(1) \ldots d(N)d(1)…d(N) of the dancing parts for cows 1…N1 \ldots N1…N. Each d(i)d(i)d(i) value is an integer in the range 1…100,0001 \ldots 100,0001…100,000.

It is guaranteed that if K=NK=NK=N, the show will finish in time.

第一行包括N和T-max两个整数(T-max<=1,000,000)。

接下来的N行给出了第1..n头牛跳舞的持续时间d[1]..d[n]。第i行包括一个整数d[i],1<=d[i]<=100,000.

保证K=N时表演会按时完成。

输出格式:

Print out the smallest possible value of K such that the dance performance will take no more than TmaxT_{max}Tmax​ units of time.

输出在表演时间不大于T-max时的K的最小可能值。

输入输出样例

输入样例#1: 复制

5 8
4
7
8
6
4
输出样例#1: 复制

4

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
这题用二分,查找 k 的值(先确定 k 的值,再判断 k 是否符合要求,符合要求就缩小范围继续查找,不符合就增大范围继续查找)
 #include<iostream>
#include<algorithm>
using namespace std;
int n,tmax,a[],b[],t,l=,r,m;
int f(int x)
{
for(int i=;i<=x;i++)
b[i]=a[i];
sort(b+,b+x+);
for(int i=x+;i<=n;i++)
{
if(b[x]>tmax)
return ;
b[]+=a[i];
for(int j=;j<x;j++)
if(b[j]<=b[j+])
break;
else
t=b[j],b[j]=b[j+],b[j+]=t;
}
return b[x]<=tmax;
}
int main()
{
cin>>n>>tmax;
r=n;
for(int i=;i<=n;i++)
cin>>a[i];
while(l<=r)
{
m=(l+r)/;
if(f(m))
r=m-;
else
l=m+;
}
cout<<l;
return ;
}

洛谷P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈的更多相关文章

  1. [LUOGU] P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈

    https://www.luogu.org/problemnew/show/P3611 二分答案+优先队列 二分O(logn) 判一次正确性O(nlogn) 总体O(nlognlogn) 为了让pri ...

  2. P3611 【[USACO17JAN]Cow Dance Show奶牛舞蹈】

    想了一下还是不发以前做过的水题了,意义也不是很大,现在的话大概只有洛谷黄题以上才会收录了哦~~~ 喵了个咪的题面~~ 洛谷题解dalao不是P党就是优先队列,看的我作为一个新手蒟蒻好慌啊... 这题用 ...

  3. [洛谷P4183][USACO18JAN]Cow at Large P

    题目链接 Bzoj崩了之后在洛谷偶然找到的点分好题! 在暴力的角度来说,如果我们$O(n)$枚举根节点,有没有办法在$O(n)$的时间内找到答案呢? 此时如果用树形$dp$的想法,发现是可做的,因为可 ...

  4. 洛谷 P4183 - [USACO18JAN]Cow at Large P(点分治)

    洛谷题面传送门 点分治 hot tea. 首先考虑什么样的点能够对以 \(u\) 为根的答案产生 \(1\) 的贡献.我们考虑以 \(u\) 为根对整棵树进行一遍 DFS.那么对于一个点 \(v\), ...

  5. 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片

    P3608 [USACO17JAN]Balanced Photo平衡的照片 题目描述 Farmer John is arranging his NN cows in a line to take a ...

  6. 洛谷P3605 [USACO17JAN] Promotion Counting 晋升者计数 [线段树合并]

    题目传送门 Promotion Counting 题目描述 The cows have once again tried to form a startup company, failing to r ...

  7. 洛谷P3052 [USACO12MAR]摩天大楼里的奶牛 [迭代加深搜索]

    题目传送门 摩天大楼里的奶牛 题目描述 A little known fact about Bessie and friends is that they love stair climbing ra ...

  8. 洛谷P3120 [USACO15FEB]Cow Hopscotch

    题目描述 Just like humans enjoy playing the game of Hopscotch, Farmer John&apos;s cows have invented ...

  9. 洛谷P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 题目描述 A little known fact about Bessie and friends is ...

随机推荐

  1. 性能测试工具Jmeter09-Jmeter参数化

     三种方式: 1.用户参数 操作步骤,如下 响应断言,断言也要记得变量更替 2.CSV数据配置 以下截图为我的参数项文件 3.随机参数化

  2. SimpleAdapter与listview,gridview的组合用法

    首先要明白SimpleAdapter构造方法的几个参数的含义: public SimpleAdapter(Context context, List<? extends Map<Strin ...

  3. Python LoggerAdpater类

    Logger子类: import logging # create loggermodule_logger = logging.getLogger('spam_application.auxiliar ...

  4. Winform窗体“空闲事件”

    Application.Idle += Application_Idle; void Application_Idle(object sender, EventArgs e){ } 当应用程序完成处理 ...

  5. js跳转到邮箱登录

    做邮箱验证时为了用户体验,往往会有跳转到邮箱登录这一按钮,其中的js如下: $("#btnemail").click(function () { var userEmail = $ ...

  6. poj 1947 树形背包

    重做这道题 http://blog.csdn.net/woshi250hua/article/details/7632785 http://blog.csdn.net/shuangde800/arti ...

  7. 零基础逆向工程34_Win32_08_线程控制_CONTEXT结构

    线程控制 实验 挂起线程 ::SuspendThread(hThread); 恢复线程 ::ResumeThread(hThread); 终止线程 (这里讲了同步调用与异步调用) 方式一: 此方法结束 ...

  8. JavaScript精简代码 非一般的写法(转载)

    摘要:最近在编写一个前端模块功能,编写了大量的代码,其中一般图片特效展示是参考别人的代码来写的,发现有些代码似乎看得明白又好像不确定是不是哪个意思,所以在网上问了一下程序员们,原来是JS代码简写. 转 ...

  9. ES7的Async/Await的简单理解

    Async/Await 的个人见解 正文: async,顾名思义,一个异步执行的功能,而 await 则是配合 async 使用的另一个关键字,也是闻字识其意,就是叫你等待啦! 二者配合食用效果更佳哦 ...

  10. nodejs一个函数实现消息队列中间件

    消息队列中间件(Message Queue)相信大家不会陌生,如Kafka.RabbitMQ.RocketMQ等,已经非常成熟,在大大小小的公司和项目中也已经广泛使用. 有些项目中,如果是只使用初步的 ...