[USACO17JAN]Cow Dance Show S更新ing

这道题目是二分舞台大小,为什么能用二分呢?因为如果mid成立 则mid~r都成立,如果mid不成立l~mid就都不成立,也就是严格单调,所以可以使用二分快速找到k。
check函数的思路:
实现:在舞台为k的情况下表演时间能否满足tmax。
思路:1.先给舞台上放k头牛按表演时间排序
2.然后将余下的k+1~n在第一头牛的位置依次上舞台,每次上舞台后重新排序。
3.最后第k头牛就是总耗时,判断是否满足tmax即可。
程序:
1 #include<bits/stdc++.h>
2 using namespace std;
3 int n,tmax,d[10010]={0};
4 int check(int k)
5 {
6 int w[10010]={0};
7 for(int i=1;i<=k;i++) w[i]=d[i];
8 sort(w+1,w+1+k);
9 for(int i=k+1;i<=n;i++)
10 {
11 w[1]+=d[i];
12 sort(w+1,w+1+k);
13 }
14 if(w[k]>tmax) return 0;
15 else return 1;
16 }
17 int main()
18 {
19 cin>>n>>tmax;
20 for(int i=1;i<=n;i++) cin>>d[i];
21 int l=1,r=n;
22 while(l+1!=r)
23 {
24 int mid=(l+r)/2;
25 if(check(mid))
26 {
27 r=mid;
28 }
29 else l=mid;
30 }
31 cout<<r<<endl;
32 return 0;
33 }
还有一个写法就是用小根堆 来写 (点我科普大小根堆)
众所不周知小根堆可以自己排序所以省的时间就省在sort上了。

其他的只有一点值得注意:小根堆取首项用的是去。q.top();
程序:
1 #include<bits/stdc++.h>
2 using namespace std;
3 int n,tmax,a[10010]={0};
4 priority_queue<int,vector<int>,greater<int>> q;
5 int check(int side)
6 {
7 // int w[10010]={0};
8 for(int i=1;i<=side;i++) q.push(a[i]);
9 for(int i=side+1;i<=n;i++)
10 {
11 int op=q.top();
12 q.pop();
13 q.push(op+a[i]);
14 // w[1]+=a[i];
15 // sort(w+1,w+1+side);
16 }
17 int ans=0;
18 while(q.size())
19 {
20 ans=max(q.top(),ans);
21 q.pop();
22 }
23 if(ans>tmax) return 0;
24 else return 1;
25 }
26 int main()
27 {
28 scanf("%d%d",&n,&tmax);
29 for(int i=1;i<=n;i++) scanf("%d",&a[i]);
30 int l=1,r=n;
31 while(l+1!=r)
32 {
33 int mid=(l+r)/2;
34 if(check(mid)==1)
35 {
36 r=mid;
37 }
38 else l=mid;
39 }
40 printf("%d",r);
41 return 0;
42 }
[USACO17JAN]Cow Dance Show S更新ing的更多相关文章
- 洛谷P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈
题目描述 After several months of rehearsal, the cows are just about ready to put on their annual dance p ...
- [LUOGU] P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈
https://www.luogu.org/problemnew/show/P3611 二分答案+优先队列 二分O(logn) 判一次正确性O(nlogn) 总体O(nlognlogn) 为了让pri ...
- P3611 【[USACO17JAN]Cow Dance Show奶牛舞蹈】
想了一下还是不发以前做过的水题了,意义也不是很大,现在的话大概只有洛谷黄题以上才会收录了哦~~~ 喵了个咪的题面~~ 洛谷题解dalao不是P党就是优先队列,看的我作为一个新手蒟蒻好慌啊... 这题用 ...
- 适合入门自学服装裁剪滴书(更新ing)
[♣]适合入门自学服装裁剪滴书(更新ing) [♣]适合入门自学服装裁剪滴书(更新ing) 适合入门自学服装裁剪滴书(更新ing) 来自: 裁缝阿普(不为良匠,便为良医.) 2014-04-06 23 ...
- Coursera,Udacity,Edx 课程列表(更新ing)
Coursera,Udacity,Edx 课程列表(更新ing) Coursera有很多特别好的课程,平时没有机会听到国外大牛的课程,通过Coursera算是可以弥补一下吧,国外的课程普遍比国内的老师 ...
- storcli 命令(更新Ing)
help [root@centos7]# storcli -h Storage Command Line Tool Ver 007.0606.0000.0000 Mar , (c)Copyright ...
- 大白话strom——问题收集(持续更新ing)
本文导读: 1.基于storm的应用 2.storm的单点故障解决 3.strom与算法的结合学习4.杂记——常见问题的解答5.http://www.blogchong.com/catalog.asp ...
- paper 34 :常见函数的举例(更新ing)2
在研究opencv,不是很难,但是需要换种思维来认知这个C/C++为编程函数的开源代码库,OK,我现在还是总结一些常用MATLAB的函数,随时更新,下一阶段就是opencv方面的认知了! 1.std ...
- 一些不认识的开源js(更新ing。。。)
孟星魂和小蝶归隐山林曾经说过,我们不问江湖事,但是不能不知道江湖事,因为我们是老伯的人(大概意思),所以有些东西可以用不到,但是一定要了解点... (首先不能人云亦云,但是有个主观观点也没啥大问题) ...
- Python:常见错误集锦(持续更新ing)
初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...
随机推荐
- <四>构造函数初始化列表
示例代码1 点击查看代码 class CDate{ public: CDate(int _year,int _month, int _day){ this->year=_year; this-& ...
- Java 同步锁ReentrantLock与抽象同步队列AQS
AbstractQueuedSynchronizer 抽象同步队列,它是个模板类提供了许多以锁相关的操作,常说的AQS指的就是它.AQS继承了AbstractOwnableSynchronizer类, ...
- 前端学习 linux —— 软件安装(Ubuntu)
软件安装(Ubuntu) 本篇主要讲解 ubuntu 中软件的安装.apt 的源.内网部署案例(graylog 为例),最后是 python 开发准备. apt 和 rpm 在linux 第一篇我们知 ...
- JS逆向实战9——cookies DES加密混淆
cookie加密 DES 混淆 目标网站:aHR0cHM6Ly90bGNoZW1zaG9wLnlvdXpoaWNhaS5jb20vbWFpbi90ZW5kP05vdGljZUNhdGVJZD0xJk5 ...
- Python异步协程(asyncio详解)
续上篇讲解yield from博客,上篇链接:https://www.cnblogs.com/Red-Sun/p/16889182.html PS:本博客是个人笔记分享,不需要扫码加群或必须关注什么的 ...
- Spring Security(7)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 有时某些业务或者功能,需要在用户请求到来之前就进行一些判断或执行某些动作,就像在Servlet中的FilterChain过滤器所做的那样,Spr ...
- MySQL进阶实战2,那些年学过的事务
@ 目录 一.MySQL服务器逻辑架构 二.并发控制 1.读写锁 2.锁粒度 3.表锁 4.行级锁 三.事务 1.原子性(atomicity) 2.一致性(consistency) 3.隔离性(iso ...
- “XZ”格式文件解压
1.下载xz 官网:https://tukaani.org/xz/ 例:wget https://nchc.dl.sourceforge.net/project/lzmautils/xz-5.2.6. ...
- 【kafka】JDBC connector进行表数据增量同步过程中的源表与目标表时间不一致问题解决
〇.参考资料 一.现象 1.Oracle源表数据 2.PG同步后的表数据 3.现象 时间不一致,差了8个小时 4.查看对应的connector信息 (1)source { "connecto ...
- java 如何正确使用接口返回对象Result
1. Result的使用 Result的使用,是java项目中开发接口的必备,它经常被我们用作接口的返回对象,方便前端或者其他程序的远程调用后处理业务.它一般包括以下几个属性: code:一般根据系统 ...