这道题目是二分舞台大小,为什么能用二分呢?因为如果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的更多相关文章

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

    题目描述 After several months of rehearsal, the cows are just about ready to put on their annual dance p ...

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

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

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

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

  4. 适合入门自学服装裁剪滴书(更新ing)

    [♣]适合入门自学服装裁剪滴书(更新ing) [♣]适合入门自学服装裁剪滴书(更新ing) 适合入门自学服装裁剪滴书(更新ing) 来自: 裁缝阿普(不为良匠,便为良医.) 2014-04-06 23 ...

  5. Coursera,Udacity,Edx 课程列表(更新ing)

    Coursera,Udacity,Edx 课程列表(更新ing) Coursera有很多特别好的课程,平时没有机会听到国外大牛的课程,通过Coursera算是可以弥补一下吧,国外的课程普遍比国内的老师 ...

  6. storcli 命令(更新Ing)

    help [root@centos7]# storcli -h Storage Command Line Tool Ver 007.0606.0000.0000 Mar , (c)Copyright ...

  7. 大白话strom——问题收集(持续更新ing)

    本文导读: 1.基于storm的应用 2.storm的单点故障解决 3.strom与算法的结合学习4.杂记——常见问题的解答5.http://www.blogchong.com/catalog.asp ...

  8. paper 34 :常见函数的举例(更新ing)2

    在研究opencv,不是很难,但是需要换种思维来认知这个C/C++为编程函数的开源代码库,OK,我现在还是总结一些常用MATLAB的函数,随时更新,下一阶段就是opencv方面的认知了! 1.std ...

  9. 一些不认识的开源js(更新ing。。。)

    孟星魂和小蝶归隐山林曾经说过,我们不问江湖事,但是不能不知道江湖事,因为我们是老伯的人(大概意思),所以有些东西可以用不到,但是一定要了解点... (首先不能人云亦云,但是有个主观观点也没啥大问题) ...

  10. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

随机推荐

  1. Perl读取Excel中的数据

    #!usr/bin/perl -W use strict; use Spreadsheet::ParseExcel;#PERL的Spreadsheet::ParseExcel模块支持Excel的读操作 ...

  2. 这次,听人大教授讲讲分布式数据库的多级一致性|TDSQL 关键技术突破

    近年来,凭借高可扩展.高可用等技术特性,分布式数据库正在成为金融行业数字化转型的重要支撑.分布式数据库如何在不同的金融级应用场景下,在确保数据一致性的前提下,同时保障系统的高性能和高可扩展性,是分布式 ...

  3. (工具) TCMalloc笔记

    下载及编译 wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2. ...

  4. 第2-4-2章 规则引擎Drools入门案例-业务规则管理系统-组件化-中台

    目录 3. Drools入门案例 3.1 业务场景说明 3.2 开发实现 3.3 小结 3.3.1 规则引擎构成 3.3.2 相关概念说明 3.3.3 规则引擎执行过程 3.3.4 KIE介绍 3. ...

  5. MIT6.828 Lab 1: C, Assembly, Tools, and Bootstrapping

    前置准备 实现机器为VMWare的虚拟机,操作系统为 Debian-11(无桌面版本),内核版本为 5.10.0,指令集为 AMD64(i7 9700K),编译器为 GCC-10 QEMU 虚拟化支持 ...

  6. jmeter 从多个数中随机取一个值的方法

    问题描述:使用jmeter进行接口测试时,遇到枚举值(如:10代表闲置.15代表使用中.20代表维修等)我们需要随机取一个类型传到接口中. 解决思路:通过函数助手查找随机函数,找到__chooseRa ...

  7. .NET 6使用ImageSharp给图片添加水印

    ​ .NET 6 中,使用System.Drawing操作图片,生成解决方案或打包的时候,会有警告,意思是System.Drawing仅在 'windows' 上受支持.微软官方的解释是: Syste ...

  8. 【十次方微服务后台开发】Day02:加密与JWT鉴权、微服务注册中心、配置中心、熔断器、网关、消息总线、部署与持续集成、容器管理与监控Rancher、influxDB、grafana

    一.密码加密与微服务鉴权JWT 1.BCrypt密码加密 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用B ...

  9. include指令和include动作的区别

    include指令和<jsp:include>动作标识的区别 1.include指令通过file属性指定被包含的文件,并且file属性不支持任何表达式: <jsp:include&g ...

  10. Mysql安装失败-GPG验证不通过或Failed to start mariadb.service: Unit not fou

    1.报错原因 报错原文 Key imported successfully Import of key(s) didn't help, wrong key(s)? Public key for mys ...