[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 说明此处需要缩 ...
随机推荐
- mysql删库报错
3.开发人员测试环境删库报错 #解决:在数据库的物理目录中(mysql的data目录),进入要删除的数据库目录,查看是否有文件存在,若存在,使用rm -rf 命令清除:再次执行删除数据库命令即可 [r ...
- 实战中的sudo提权漏洞的使用姿势(CVE-2021-3156)
实战中的sudo提权漏洞的使用姿势 免责声明: 0x00 漏洞概述 0x01 漏洞原理 0x02 受影响版本 0x03 不受影响版本 0x04 漏洞复现(centos) 复现POC1: 复现POC2: ...
- QQ登录
public function login(){ $urlencode = urlencode("http://www.zhangxuhui.com/index/Index/callback ...
- MSP430中断小实验——通过按键改变小灯闪烁频率
本小实验基于MSP430f5529,不同的型号可能管脚和中断配置有所不同. 实现的功能为: 第一次按下按键后,系统以每 2 秒钟,指示灯暗 1 秒,亮 1 秒的方式闪烁.程序采用默认时钟配置: 第二次 ...
- python(牛客)试题解析2 - 中等
导航 一.NC192 二叉树的后序遍历 二.NC117 合并二叉树 三.求长度最长的的连续子序列使他们的和等于sum 四.按顺序取出固定长度内容并合并两个数组为一个新数组 五.输出所有结果小于k的整数 ...
- Vue2基本组件间通信
Vue2组件通信的基础方式 自己的理解:组件化通信,无非就是数据你传我,我传你,两个组件的相互交流,方法很多,下方有图示(此篇建议小白阅读,大神的话也不会看,哈哈哈哈!仅供参考,有不同的意见可以一起交 ...
- vulnhub靶场渗透实战11-Deathnote
网络模式,怎么方便怎么来. 靶场地址:https://download.vulnhub.com/deathnote/Deathnote.ova 这个靶机很简单.vbox装好. 1:主机发现,和端口 ...
- 【面试题总结】Java并发-多线程、JUC详述(思维导图)
〇.整体目录 一.多线程 1.实现方式 2.内存图 3.线程状态 4.实现线程同步 5.并发编程 二.JUC 1.概述与volatile关键字 2.ThreadLocal类 3.CAS方法 4.ato ...
- 【每日一题】2021年12月14日-82. 删除排序链表中的重复元素 II
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字. 返回同样按升序排列的结果链表. 来源:力扣(LeetCo ...
- 【每日一题】2021年12月11日-69. Sqrt(x)/x的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 . 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 . 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或 ...