uva 1451 数形结合】的更多相关文章

题意: 给出一个01串,选一个长度至少为L的连续子串,使得串中数字的平均值最大. 分析: 能把这道题想到用数形结合,用斜率表示平均值,我觉得这个想法太“天马行空”了 首先预处理子串的前缀和sum,如果在坐标系中描出(i, sum[i])这些点的话. 所求的平均值就是两点间的斜率了,具体来说,在连续子串[a, b]中,有sum[b]-sum[a-1]个1,长度为b-a+1,所以平均值为(sum[b]-sum[a-1])/(b-a+1) 所以就把问题转化为:求两点横坐标之差至少为L-1,能得到的最大…
思路:枚举点t,寻找满足条件的点t': 计sum[i]为前i项合,平均值即为sum[t]-sum[t'-1]/t-t'+1 设(Pi=(i,Si),表示点在s中的位置,那么就可以画出坐标图,问题就转化为斜率最大: 于是画图分析. 几个点之间只有上凸下凸两种情况,取3个点为符合条件(t-t'>=L)的t',分析后得结论上凸点在各种情况(t)下都要舍去: 于是就可以不断更新,更新策略为新插入点,删除掉原来是下凸点,插入后变成上凸点的点: 随着t增大,t'只会增大(t增大,pt增大),所以增加到斜率变…
摘要:数形结合,斜率优化,单调队列. 题意:求一个长度为n的01串的子串,子串长度至少为L,平均值应该尽量大,多个满足条件取长度最短,还有多个的话,取起点最靠左. 求出前缀和S[i],令点Pi表示(i,S[i]),那么这个问题就转化成了求斜率最大的两点.画图分析可知,如果有上凸点,那么上凸点,一定不会是最优的,所以问题就变成了维护一个下凸的曲线.那么可以通过比较斜率来维护,而要求切点,在上一个切点之前的点不会得到更优的解. 假设在A点,即之前的切线之上,那么选切点以前的点,一定不是最优的,假设在…
这道题用了数形结合, 真的牛逼, 完全想到不到还可以这么做 因为题目求的是平均值, 是总数除以个数, 这个时候就可以联系 到斜率, 也就是说转化为给你一堆点, 让你求两点之间的最大斜率 要做两个处理 (1)去掉上凸点, 因为上凸点是无论如何都不会为最优解的 (2)去掉之后每两个点之间的斜率是单调递增的, 这个时候要求切点. 切点即最大斜率, 所以就枚举终点, 然后找该终点对应的最大斜率 (也就是找到切点), 然后更新答案. #include<cstdio> #define REP(i, a,…
题 题意 求长度为n的01串中1占总长(大于L)的比例最大的一个子串起点和终点. 分析 前缀和s[i]保存前i个数有几个1,[j+1,i] 这段区间1的比例就是(s[i]-s[j])/(i-j),于是问题转换为找斜率最大的两个点. 如图,加入j时,就要去掉b1.b2,才能维护斜率的单调递增. 以队列里的点做起点,i 结尾的线段斜率最大的是 i和队列里点组成的下凹线的切线.切点前的点就不会再用到了,因为i后面的点和他们的斜率也将不如和这个切点的斜率. 数形结合,斜率优化,单调队列. 代码 #inc…
转自PomeCat: "DP的斜率优化--对不必要的状态量进行抛弃,对不优的状态量进行搁置,使得在常数时间内找到最优解成为可能.斜率优化依靠的是数形结合的思想,通过将每个阶段和状态的答案反映在坐标系上寻找解答的单调性,来在一个单调的答案(下标)队列中O(1)得到最优解." https://wenku.baidu.com/view/b97cd22d0066f5335a8121a3.html "一些试题中繁杂的代数关系身后往往隐藏着丰富的几何背景,而借助背景图形的性质,可以使那些…
题意:定义高度为\(x\)的金字塔数列为周期为\(2x-2\)的无限数列.它的每一个周期都是形如\(1,2,...,x-1,x,x-1,...,2\)的形式.记高度为\(x\)的金字塔数列第\(i\)个数为\(p_{x,i}\) 现在给出\(n\)和\(m\),求集合\(S = \{(x,y) | \, \exists i , x = A_{n,i}, y = A_{m,i}\}\)的大小. \(n,m \leq 10^9\) 遇到此题似乎无从下手.在于我们无从直接处理数列. 考虑把\((x,y…
https://vjudge.net/problem/UVA-1451 题意:给定长度为n的01串,选一个长度至少为L的连续子串,使得子串中数字的平均值最大. 思路:这题需要数形结合,真的是很灵活. 入门经典上讲得很详细,或者也可以看看这个,写得很不错.浅谈树形结合思想在信息竞赛中的应用 这道题的话首先就是求前缀和,之后的平均值就相当于求斜率了. 最重要的一点,就是在用单调队列维护的时候,一定要删去上凸点. #include<iostream> #include<algorithm>…
题目大意 求子集斯特林数\(\left\{\begin{matrix}n\\m\end{matrix}\right\}\%2\) 方法1 数形结合 推荐一篇超棒的博客by Sdchr 就是根据斯特林的递推式,分奇偶讨论 得到一个函数\(P_{n,m}\equiv\left\{\begin{matrix}n\\m\end{matrix}\right\}\% 2\) 再根据函数递推式通过画图,数形结合 转化成图中从一点走到另一点的方案数 变成组合问题求解 做法 这是给连插板都不会的我看的 \(a_1…
高中也做个这种类似的题目,概率空间是[t1, t2] × [s1, s2]的矩形,设x.y分别代表两辆列车到达的时间,则两人相遇的条件就是|x - y| <= w 从图形上看就是矩形夹在两条平行线之间的部分. 因为情况众多,一个一个分类很麻烦,而且可能有漏掉情况,所以就用计算几何的办法求了个凸多边形,多边形 与 矩形面积之比就是概率. 代码有点挫,将就看,=_=|| #include <cstdio> #include <vector> #include <cmath&…