关键词:
首先二分答案求出一个可能的最大平均值,并用前缀和数组判断是否有连续至少m个数的平均数超过该可能平均值,之后按二分常规操作就行了
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<queue> 7 #include<stack> 8 #include<deque> 9 #define ll long long 10 using namespace std; 11 const int oo=0x3f3f3f3f; 12 const int N=100005; 13 14 int n,m; 15 ll r,l,mid,M; 16 ll a[N],f[N]; 17 18 ll Max(ll a,ll b)return a>b?a:b; 19 ll Min(ll a,ll b)return a<b?a:b; 20 ll Abs(ll a)return a>0?a:-a; 21 22 ll get() 23 ll zy=getchar(); 24 ll z=1,y=0; 25 while(zy>‘9‘||zy<‘0‘) 26 if(zy==‘-‘) z=-1; 27 zy=getchar(); 28 29 while(zy>=‘0‘&&zy<=‘9‘) 30 y=(y<<1)+(y<<3)+zy-‘0‘; 31 zy=getchar(); 32 33 return z*y; 34 35 36 bool likezy() 37 bool ok=false; 38 ll p=M; 39 for(int i=1;i<=n;i++) 40 f[i]=f[i-1]+a[i]-mid; 41 if(i>=m) 42 p=Min(p,f[i-m]); 43 if(f[i]>=p) return true; 44 45 46 return false; 47 48 49 int main() 50 //freopen("P1404平均数.in","r",stdin); 51 //freopen("P1404平均数.out","w",stdout); 52 scanf("%d%d",&n,&m); 53 for(int i=1;i<=n;i++) 54 a[i]=get()*10000; 55 r=Max(a[i],r); 56 M=r; 57 58 while(l<r) 59 mid=(l+r)>>1; 60 if(likezy()) l=mid+1; 61 else r=mid-1; 62 63 printf("%lld ",l/10); 64 return 0; 65
sql平均(代码片段)
hdu1064(求平均数**)(代码片段)
题意是求12个浮点数的平均数,这题不用读题,看到运行时间为200ms再看下样例就能猜出题目的要求了,代码如下:1#include<bits/stdc++.h>2usingnamespacestd;3intmain()45doublea,ans(0);6for(inti=0;i<12;++i)78scanf("%lf",&a);9ans+=a;1011printf(" 查看详情
python平均编码(代码片段)
javascript平均数组(代码片段)
python平均编码(代码片段)
python风向平均(代码片段)
5.平均数(代码片段)
题目:输入3个整数,输出它们的平均值,保留3位小数。 思路:直接计算即可。 代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain()inta=0,b=0,c=0;cin>>a>>b>>c;doubleaverage=static_cast<double>(a+b+c)/3;cout&l... 查看详情
python移动平均线(代码片段)
javascript平均值(代码片段)
sh$的平均值?(代码片段)
python平均f分数(代码片段)
神经网络优化-滑动平均(代码片段)
1滑动平均概述滑动平均(也称为影子值):记录了每一个参数一段时间内过往值的平均,增加了模型的泛化性。滑动平均通常针对所有参数进行优化:W和b,简单地理解,滑动平均像是给参数加了一个影子,参数变化,影子缓慢... 查看详情
求平均数的四种方法(代码片段)
用c语言求平均数有四种方法,各有利弊。1.第一种是最常规的做法例>intmain()inta=10;intb=5;c=(a+b)/2;system("pause");return0;这种方法有缺陷,如果a和b足够大,以致于两数之和超出了intmax(整型所能代表的最大值),所以不建议使用这... 查看详情
textabs值的平均值(代码片段)
平均撒点方法java(代码片段)
平均撒点方法一、题目二、思路三、代码实现一、题目已知:i=1,func(1)=1/2;i=2,func(1) 查看详情
平均撒点方法java(代码片段)
平均撒点方法一、题目二、思路三、代码实现一、题目已知:i=1,func(1)=1/2;i=2,func(1) 查看详情
平均撒点方法java(代码片段)
平均撒点方法一、题目二、思路三、代码实现一、题目已知:i=1,func(1)=1/2;i=2,func(1) 查看详情
平均负载(代码片段)
什么是平均负载平均负载时指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率没有直接关系。可运行状态的进程指正在使用CPU或者正在等待CPU的进程数。也就是说我们常用... 查看详情