题解0002:Best Cow Fences】的更多相关文章

题目链接:https://vjudge.net/problem/POJ-2018 Best Cow Fences Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11394   Accepted: 3736 Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a…
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14601 Accepted: 4720 Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2…
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10174 Accepted: 3294 Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2…
Best Cow Fences 二分答案 + 前缀和 个人认为题意没有表述清楚,本题要求的是满足题意的连续子序列(难度大大降低了有木有). 本题的精度也是非常令人陶醉,请您自行体会吧! #include <iostream> #include <cstdio> #include <algorithm> using namespace std; //Mystery_Sky // #define M 10000100 #define ex 1e-5 double l = 1…
1434:[例题2]Best Cow Fences 时间限制: 1000 ms         内存限制: 65536 KB提交数: 263     通过数: 146 [题目描述] 给定一个长度为n的正整数序列A.求一个平均数最大的,长度不小于L的子序列. [输入] 第一行,n和L: n个正整数,表示A. [输出] 一个整数,表示答案的1000倍(不用四舍五入,直接输出). [输入样例] 10 6 6 4 2 10 3 8 5 9 4 1 [输出样例] 6500 [提示] n ≤ 10000 思…
题目 #10012 「一本通 1.2 例 2」Best Cow Fences 解析 有序列\(\{a_i\}\),设\([l,r]\)上的平均值为\(\bar{x}\),有\(\sum_{i=l}^r(a_i-\bar{x})=0\) 这样我们就可以通过二分平均值, 先同减二分到的平均值,若存在一段区间的和大于等于0,说明这段区间的平均值大于等于二分值,上调边界,否则下调边界 只需要枚举右端点\(r\),判断\(sum[r]-sum[l-1]>=0(1\leq l\leq r - m + 1)\…
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000. FJ wants to build a fence around a…
题目描述:给定一个长度为n的正整数序列A.求一个平均数最大的,长度不小于L的子序列,输出这个平均数*1000. 题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1434 思路:用2分假定一个平均数,一步步缩小范围,最后求出这个平均数 代码(带注释): #include<bits/stdc++.h>using namespace std;double a[100001],b[100001],sum[100001],eps=1e-5,l=-1…
题意:给出长度>=f的最大连续区间平均数 思路:二分这个平均数,然后O(n)判断是否可行,再调整l,r.判断方法是,先求出每个数对这个平均数的贡献,再求出长度>=f的最大贡献的区间,如果这个最大贡献大于0说明这个二分出来的数可行. 代码: #include<set> #include<map> #include<stack> #include<cmath> #include<queue> #include<vector>…
每日一题 day48 打卡 Analysis 二分答案,判断序列的平均值是否大于等于mid 具体怎么实现呢? 将序列减去mid,再用前缀和来维护平均值就好了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define int long long #define maxn 100000+10 #define INF 2147483647 #define re…
实数折磨人啊啊啊啊啊啊啊 好,实数应该是最反人类的东西了...... 这个害得我调了0.5天才过. 大意是这样的:给你一个数列,求其中不少于f个的连续数的最大平均值. 不禁想起寒假的课程来... 此处应该二分ans,每次把数列减去ans后判断是否有不少于f的一段sum>=0 大喜过望,写了个二分,然后发现不会O(1)判断... 冥思苦想无果之后不由得去看题解.发现要维护前缀和和1~i-f+1的最小前缀和即可. 然后就被实数卡了一天... 最后发现还是写的朴素点好.要相信出题人头脑简单不会拿一大堆…
题目描述 Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000. FJ wants to build a fence around a contiguous group of these fields in order to maximize the avera…
题意:找到一个连续区间,区间的长度至少大于f,现在要求这个区间的平均值最大. 题解: 二分找答案. 每次对于2分的mid值, 都把原来的区间减去mid, 然后找到一长度至少为f的区间, 他们的区间和>=0. 代码: #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<map> #include<iostream> #incl…
$ POJ~2018~Best~Cow~ Fences $(二分答案构造新权值) $ solution: $ 题目大意: 给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段 这道题首先我们如果没有长度限制,直接扫一遍数组即可 而有了长度限制之后我们的候选集合发生改变,很容让我们想到DP 事实上这一道题可以DP,用斜率优化复杂度极小,就是有点常数(事实上最优) 但是我们可以参考类似01规划的做法,因为答案具有单调行. 我们让数组中每一个数都减去我们二分答案枚举的值,然后…
http://poj.org/problem?id=2018 此乃神题……详见04年集训队论文周源的,看了这个对斜率优化dp的理解也会好些. 分析: 我们要求的是{S[j]-s[i-1]}/{j-(i-1)}最大,可以发现这个形式满足直线斜率式,于是原题就可以看成平面上有一些点P(i,s[i]),然后求这些点中横距大于F的两点的最大斜率. 这么转化后仍然需要n^2的枚举 但当你枚举一个点,并在前面的点中枚举找到一个和它结合斜率最大的解时,可以发现是像凸包那样的维护一个下凹的曲线,因为如果某个点是…
传送门 题目大意就是给定一个长度为 n 的正整数序列 A ,求一个平均数最大的,长度不小于 L 的子序列. 思路: 二分答案. Code: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<string> #include<cstdlib> #include<stack&…
Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000. FJ wants to build a fence around a contiguous group of these fields in order to maximize the average nu…
Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000. FJ wants to build a fence around a contiguous group of these fields in order to maximize th…
斜率优化. 设$s[i]$表示前缀和,$avg(i,j)=(s[j]-s[i-1])/(j-(i-1))$.就是$(j,s[j])$与$(i-1,s[i-1])$两点之间的斜率. 如果,我们目前在计算$px$与哪个点相连斜率最大,那么一定不会是$pj$点.因为不是$pi$比优就是$pk$比$pi$优.因此斜率优化可以将$pj$这样的点直接删除. 因此队列里存着的相邻两点的斜率是不断增大的. 因为$(s[i+1]-s[i])/1$是大于等于$1$的,所以如果$pi$点与$pt$点形成的斜率最大,那…
[题目链接] http://poj.org/problem?id=2018 [算法] 二分平均值 检验时将每个数减去二分的值,求长度至少为L的子序列和的最大值,判断是否大于0 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <co…
题目. 首先暴力很好搞,但是优化的话就不会了.放弃QWQ. 做法1:二分答案 然后发现平均值是$ave=\frac{sum}{len}$,这种形式似乎可以二分答案?把$len$移到左边. 于是二分$ave$,去找数列有没有区间和大于等于其$len$乘以$ave$的,然后卡住了.. 有一个很巧的转化,把每个数都减去一个$ave$,然后任意区间和就相当于把$ave$累加了$len$次. 于是乎只要看区间和$S-len*ave$是否大于等于0就可以了. 存在这样一个区间就说明$ave$可以更大,否则要…
题目链接:http://poj.org/problem?id=2018 题目给了一些农场,每个农场有一定数量的奶牛,农场依次排列,问选择至少连续排列F个农场的序列,使这些农场的奶牛平均数量最大,求最大数量*1000/农场的个数. 思路:题目是求是否存在一个长度不小于F的子段,使得平均数最大. 1.用二分法从给定数据的最小平均数到最大平均数进行二分枚举,每次枚举的平均值为mid,那么子段的每一个元素减去mid值再求和应当大于0,否则不满足题意,这样可以不断地二分,最终找到最大的mid值 2.判断子…
题目描述 原题来自:USACO 2003 Mar. Green 给定一个长度为 N 的非负整数序列 A ,求一个平均数最大的,长度不小于 L 的子段. 输入格式 第一行用空格分隔的两个整数 N 和 L: 第二行为 N 个用空格隔开的非负整数,表示A_i . 输出格式 输出一个整数,表示这个平均数的 1000 倍.不用四舍五入,直接输出. 样例 样例输入 10 6 6 4 2 10 3 8 5 9 4 1 样例输出 6500 数据范围与提示 n<=1e5,A_i<=2000. _________…
做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直径"二字我硬是没往直径那想) solution 首先不难发现,这是一道树上的 Monthly Expense S ,需要二分答案是显然的,并且还要利用它是一棵树的优势. 证明二分可行性最简单的办法就是看指针移动后候选集合是否存在包含关系,若存在,则必定有单调性. 然后我们现在的主要问题是如何 \(c…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
前队名太过晦气,故启用最大牛 我们的组队大概就是18年初,组队阵容是17级生詹志龙.陶源和16级的黄睿博. 三人大学前均无接触过此类竞赛,队伍十分年轻.我可能是我们队最菜的,我只是知道的内容最多,靠我躺赢的比赛基本没有(其实好几场我力揽狂澜的hhhh). 本博客有我的训练记录,他们的可以去这里 陶源(图论选手+数据结构) 詹志龙(DP+各种思维) 刚开始主要是一些水题,省赛前进行了比较多的组队训练 训练场次(TOJ的训练就不一一枚举了,个人感觉没太大提升) 浙南联合训练赛20180318 htt…
放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilton路径] 知识点: 状压DP.我的题解总是写得不好,大家还是看书吧qwq P2114 [NOI2014]起床困难综合症 知识点:状态压缩 0x02 递推与递归 [题目][费解的开关] 知识点:搜索?递推?模拟? +状压 [题目] 4座塔的Hanoi 知识点:递推 [题目][约数和问题] 知识点:数…
动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 不易: , , , , , , , , , , , , , , , , , , , , , , , , 推荐: , , , , , , , , , , , , , , , , , , , , , , , , Jury Compromise False co…
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276,1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740(博弈),1742, 1887, 1926(马尔科夫矩阵,求平衡), 1936, 1952, 1953, 1958, 1959, 1962, 1975,…
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY…