《算法竞赛进阶指南》0.4二分

102. 最佳牛围栏

农夫约翰的农场由N块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头。

约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。

围起区域内至少需要包含 F块地,其中 F会在输入中给出。

在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。

输入格式
第一行输入整数 N和 F,数据间用空格隔开。

接下来 N行,每行输出一个整数,第i+1行输出的整数代表,第i片区域内包含的牛的数目。

输出格式
输出一个整数,表示围起区域内每块地包含的牛的数量的平均值可能的最大值乘以1000得到的数值。

数据范围
1≤N≤100000
1≤F≤N

输入样例:
10 6
6
4
2
10
3
8
5
9
4
1

输出样例:
6500

#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int n, m;
int cows[N];
double sum[N];bool check(double avg)
{for(int i = 1; i <= n; i++) sum[i] = sum[i - 1] + cows[i] - avg;double minv = 0;for(int i = 0, j = m; j <= n; j++, i++){minv = min(minv, sum[i]);if(sum[j] >= minv) return true;}return false;
}int main()
{cin >> n >> m;for(int i = 1; i <= n; i++) cin >> cows[i];double l = 0, r = 2000;while(r - l > 1e-5) //保留3位小数 保留k位小数,取eps = -10^-(k+2) //***这里是r - l,右减左{double mid = (l + r) / 2;if(check(mid)) l = mid; // 这里l r 都可以,把小的干掉就行else r = mid;}printf("%d\n", (int)(r * 1000));return 0;
}

113. 特殊排序

有N个元素,编号1.2..N,每一对元素之间的大小关系是确定的,关系不具有传递性。

也就是说,元素的大小关系是N个点与N*(N-1)/2条有向边构成的任意有向图。

然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过10000次提问来获取信息,每次提问只能了解某两个元素之间的关系。

现在请你把这N个元素排成一行,使得每个元素都小于右边与它相邻的元素。

你可以通过我们预设的bool函数compare来获得两个元素之间的大小关系。

例如,编号为a和b的两个元素,如果元素a小于元素b,则compare(a,b)返回true,否则返回false。

将N个元素排好序后,把他们的编号以数组的形式输出,如果答案不唯一,则输出任意一个均可。

数据范围
1≤N≤1000

输入样例
[[0, 1, 0], [0, 0, 0], [1, 1, 0]]

输出样例
[3, 1, 2]

注意:不存在两个元素大小相等的情况。

// Forward declaration of compare API.
// bool compare(int a, int b);
// return bool means whether a is less than b.class Solution {
public:vector<int> specialSort(int N) {vector<int> res;res.push_back(1);for(int i = 2; i <= N; i++){int l = 0, r = res.size() - 1;while(l < r){int mid = l + r + 1 >> 1;if(compare(res[mid], i)) l = mid; // res[mid] < i, 不在左半边里else r = mid - 1;}res.push_back(i);for(int j = res.size() - 2; j > r; j --) swap(res[j], res[j + 1]);if(compare(i, res[r])) swap(res[r], res[r + 1]); //i < res[r]}return res;}
};

转载于:https://www.cnblogs.com/wmxnlfd/p/10847657.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hibernate 自动创建表

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 在 hibernate.cfg.xml 添加这句话&#xff0c;可以自动生成数据表 : <property name"hibernate.hbm2ddl.auto">upd…

程序员越老越优秀吗?

Peter Knego 向我们展示了一些有趣的东西&#xff1a; 官方数据&#xff1a;程序员年纪越大越出色、越稀有。他使用StackOverflow的声誉值和其它几个指标来印证他的观点。 他的总结是&#xff1a; 随着年龄的增加&#xff0c;程序员的数量急剧下降。程序员数量的峰值出现在2…

小程序学习(一):点击爱心变色 -- 最简单的事件实现

最近在学习小程序&#xff0c;想通过写文章来记录自己的学习历程&#xff0c;希望能做到每周都写…… 如何绑定一个事件 微信小程序中&#xff0c;绑定事件要在标签内写入这两段代码&#xff1a; bindtap"fnActive" data-favourite "{{isLike}}" 复制代码…

安全通信

安全通信 应用层协议大多数自己都没有实现加解密功能&#xff0c;比如http等。http就是直接把数据加载进来然后做简单编码&#xff08;也就是流式化&#xff09;然后响应客户端&#xff0c;然后数据在浏览器展示&#xff0c;这个数据在传输过程是明文的&#xff0c;你截获就可以…

出现 java.lang.NullPointerException 的几种原因、可能情况

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。一般报 java.lang.NullPointerException的 原因有以下几种&#xff1a;1. 字符串变量未初始化 。 2. 接口类型的对象没有用具体的类初始化…

纯JPA 入门小案例(2)

2019独角兽企业重金招聘Python工程师标准>>> JPA中的主键生成策略 通过annotation&#xff08;注解&#xff09;来映射hibernate实体的,基于annotation的hibernate主键标识为Id, 其生成规则由GeneratedValue设定的.这里的id和GeneratedValue都是JPA的标准用法。 JPA…

spring IoC/DI

一、spring创建对象的三种方式&#xff1a;1、通过构造方法创建无参构造创建&#xff1a;默认情况有参构造创建&#xff1a;需要明确配置<constructor-arg>中配置index&#xff1a;参数索引name&#xff1a;参数名type&#xff1a;参数类型&#xff08;区分基本数据类型和…

并发不是并行,它更好!

原文链接&#xff0c;译文链接&#xff0c;译者&#xff1a;雷哥&#xff0c;饶命&#xff0c;校对&#xff1a;李任 现代社会是并行的&#xff1a;多核、网络、云计算、用户负载&#xff0c;并发技术对此有用。 Go语言支持并发&#xff0c;它提供了&#xff1a;并发执行&…

详解设计模式在Spring中的应用

设计模式作为工作学习中的枕边书&#xff0c;却时常处于勤说不用的尴尬境地&#xff0c;也不是我们时常忘记&#xff0c;只是一直没有记忆。 今天&#xff0c;在IT学习者网站就设计模式的内在价值做一番探讨&#xff0c;并以spring为例进行讲解&#xff0c;只有领略了其设计的思…

开大你的音响,感受HTML5 Audio API带来的视听盛宴

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 话说HTML5的炫酷真的是让我爱不释手&#xff0c;即使在这个提到IE就伤心不完的年代。但话又说回来&#xff0c;追求卓越Web创造更美世界…

Microsoft Visual Studio 2010(vs2010) 中文版安装

Microsoft Visual Studio 2010(vs2010) 中文版安装 日期&#xff1a;2019-05-12 时间&#xff1a;20:03:36 编辑&#xff1a;张国富 下载地址 基本简介 Microsoft Visual Studio&#xff08;vs2010是简称&#xff09;是微软公司推出的开发环境。visual studio 2010…

JVM的几点性能优化

HotSpot&#xff0c;家喻户晓的JVM&#xff0c;我们的Java和Scala程序就运行在它上面。年复一年&#xff0c;一次又一次的迭代&#xff0c;经过无数工程师的不断优化&#xff0c;现在它的代码执行的速度和效率已经逼近本地编译的代码了。 它的核心是一个JIT&#xff08;Just-I…

IDEA配置 及 快捷键

出处&#xff1a; https://www.cnblogs.com/hero123/p/10120552.html 快捷键&#xff1a; 格式化代码 CtrlaltL 后退Ctrlalt <- 格式化代码快捷键&#xff1a;Ctrl Alt L 删除整行&#xff1a;CtrlX 实现类 ctrl alt CtrlN 查找类 CtrlShiftN 查找文件 CTRLSHIFTALTN 查找…

LeetCode Decode Ways

123123转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10854545.html

SpringBoot 之集成 Spring AOP

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在开始之前&#xff0c;我们先把需要的jar包添加到工程里。新增Maven依赖如下&#xff1a; <dependency><groupId>org.spri…

9件事把你从消极情绪中解救出来

也许你很难相信&#xff0c;但是情绪可以通过重复形成习惯。消极情绪甚至可以变成某种嵌入你每日生活的东西。 如何将它们赶跑? 你发现你不断地埋怨世界和自己?你可以轻易地生气并且对人变得刻薄?那愤怒又是否成为你对事情本能的回应了?如果你对所述问题中的一个回答了“是…

数据库主键自增插入显示值

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主同意不得转载。 https://blog.csdn.net/nwsuaf2009012882/article/details/32703597 SQL Server 2008 数据库主键自增插入显示值 前几天在工作的时候遇到在删除数据库中表的数据的时候。删除之后&#xff0c;又一次…

解决: This application has no explicit mapping for /error, so you are seeing this as a fallback.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff0c;出现这个异常说明了跳转页面的url无对应的值. 原因1: Application启动类的位置不对.要将Application类放在最外侧…

Selenium自动化获取WebSocket信息

性能日志 ChromeDriver支持性能日志记录&#xff0c;您可以从中获取域“时间轴”&#xff0c;“网络”和“页面”的事件&#xff0c;以及指定跟踪类别的跟踪数据。启用性能日志 默认情况下不启用性能日志记录。因此&#xff0c;在创建新会话时&#xff0c;您必须启用它。 Desir…

零负债之人的10个习惯

无论你是已下定决心要于今年实现零负债&#xff0c;还是距离这个目标的实现有很长的路要走&#xff0c;能受到启发总是好事。 看看你认识的已经过上“无债一身轻”生活的人──朋友、家人、同事或是你认为可能与其他无负债之人具有类似品质的人。 下文为无负债之人的10个共同…