acwing 102 -利用二分枚举区间平均值
2024-09-01 05:01:40
我真的是服了,看了一晚上发现居然,,,,,
上图吧,话说有人评论没。。。
对于结果来说,不一定要枚举有序数列,感觉这是一种猜结果的方法,只不过特别精确,令人发指
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define maxn 110000
#define INF 0x3f3f3f3f
using namespace std;
double list[maxn];
double s[maxn];
int f, n;
double l, r;
int check(double mid) {
//获得前缀和
for (int i = 1; i <= n; i++) {
s[i] = list[i] - mid;
s[i] += s[i - 1];
}
double mi = 1e8;
double mx = -1e8;
for (int i = f; i <= n; i++) {//1---n之间枚举
mi = min(mi, s[i - f]);//get最小起点
mx = max(mx, s[i] - mi);//get最大区间和
}
if (mx <= 0) {//mid不行,大了
return 0;
}
else return 1;
return 0;
}
int main() { scanf("%d %d", &n, &f);
for (int i = 1; i <= n; i++) {
scanf("%lf", &list[i]);
}
l = -1e6;
r = 1e6;
double mid;
while(r-l>1e-5) {
mid = (l + r) / 2;
if (check(mid)) {//mid可以,答案还可以更大
l = mid;
}
else {
r = mid;
}
}
printf("%d\n", (int)(r*1000));
return 0;
}
最新文章
- MySQL replace into 使用详解 及 注意事项
- USACO翻译:USACO 2014 JAN三题(2)
- 状态开关按钮(ToggleButton)和开关(Switch)
- 深入浅出ASP.NET MVC5系列之一
- nginx下禁止访问robots.txt的设置方法
- TYVJ1939 玉蟾宫
- html5 (个人笔记)
- Particles.js基于Canvas画布创建粒子原子颗粒效果
- 11G ORACLE RAC DBCA 无法识别asm磁盘组
- 搭建SpringMVC+MyBatis开发框架五
- POJ3691DNA repair
- JavaScript引擎的工作原理
- srping标签和hibernate查询
- 多尺度二维离散小波分解wavedec2
- CakePHP下使用paginator需要对多个字段排序的做法
- java 环境变量 windows(Java之负基础实战)
- Eclipse——如何设置代码字体大小
- mssql sqlserver for xml EXPLICIT 用法详解说明
- PHP程序守护进程化
- Hi3536DV100 SDK 安装以及升级使用说明