[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 说明此处需要缩 ...
 
随机推荐
- OS-HACKNOS-2.1靶机之解析
			
靶机名称 HACKNOS: OS-HACKNOS 靶机下载地址 https://download.vulnhub.com/hacknos/Os-hackNos-1.ova 实验环境 : kali 2. ...
 - EBI、DDD及其演变架构史
			
一.引子 聊架构总离不开"领域驱动架构",大多能聊到DDD(Domain-Driven Design),实际上早期思想EBI架构 1992年就诞生了.核心价值点在于:关注核心业务领 ...
 - 实战中的sudo提权漏洞的使用姿势(CVE-2021-3156)
			
实战中的sudo提权漏洞的使用姿势 免责声明: 0x00 漏洞概述 0x01 漏洞原理 0x02 受影响版本 0x03 不受影响版本 0x04 漏洞复现(centos) 复现POC1: 复现POC2: ...
 - 【Docker】容器使用规范--安全挂载建议
			
容器挂载过程和安全挂载建议 绑定挂载 本文所提到的挂载主要指绑定挂载(bind mount),即通过-v /xx/xx:/xx/xx 和 --mount type=bind,xxx,xxx两种方式设置 ...
 - Winform控件绑定数据
			
目录 简介 绑定基类 功能扩展 简单控件绑定 列表控件绑定 绑定BindingList集合 绑定DataTable表格 绑定BindingSource源 表格控件绑定 绑定DataTable 绑定Bi ...
 - Axios 类似于for循环发送批量请求{:axios.all   axios.spread}。
			
Axios的请求都是异步的!不能用for循环遍历去批量发送请求 那如果我们需要类似与这样的请求怎么办呢 for(let i =0;i<array.length;i++){ axios.post( ...
 - 关于解决windows安装gcc g++环境 mingw失败
			
前言 这几天学习c++,为了详细了解编译过程我没有安装vs全家桶,当然使用命令行是最好的方法. 但是为了解决这个网络问题折腾了我很久,经过我研究发现,其实就是到固定网站下载几个压缩格式的文件,然后解压 ...
 - Type Script 在流程设计器的落地实践
			
流程设计器项目介绍 从事过BPM行业的大佬必然对流程建模工具非常熟悉,做为WFMC三大体系结构模型中的核心模块,它是工作流的能力模型,其他模块都围绕工作流定义来构建. 成熟的建模工具通过可视化的操作界 ...
 - 【Java SE进阶】Day07 等待与唤醒案例、线程池、Lamdba表达式
			
一.等待唤醒机制 1.线程间通信 多个线程处理同一个资源,就存在线程通信问题(线程间存在竞争与协作机制) 为什么处理:为了 保证多个线程有规律地完成同一任务 如何处理:避免对共享变量争夺,需要等待唤醒 ...
 - CountDownLatch闭锁源码解析(基于jdk11)
			
目录 CountDownLatch闭锁源码解析(基于jdk11) 1.1 CountDownLatch概述 1.2 CountDownLatch原理 1.2.1 基本结构(jdk11) 1.2.2 a ...