给你n个数,你可以这样操作:使区间[l,r]的数变成 他们的平均数,求字典序最小的序列。

做法:从左往右逐个比较,比较完之后会形成一个区间,一开始是区间为1的数进行比较,到后来会

变成区间较大的进行比较;

举个例子:7 6 5 4 3 2 3

显而易见,递减序列肯定是要求平均值的,但是求出来之后,会得出一个值,这个值有可能大于或小于等于右边的数

这就需要再次进行比较,所以每次比较都是以区间的形式;

代码中区间为block

 #include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0)
#define ll long long
//#define ll unsigned long long
#define R register int
#define inf 0x3f3f3f3f
#define mod 1000000007
#define eps 1e-6
#define pi acos(-1)
#define mea (memset(a,0,sizeof(a)))
#define myit set<ll>::iterator
#define myits multiset<ll>::iterator
#define v30 (1<<30)-1
#define all(x) (x).begin(),(x).end()
#define maxs *s.rbegin()
#define fi first
#define se second
using namespace std;
inline ll read(){
ll s=,w=;
char ch=getchar();
while(ch<''||ch>''){if(ch=='-')w=-;ch=getchar();}
while(ch>=''&&ch<='') s=s*+ch-'',ch=getchar();
return s*w;
}
void put1(){ puts("YES") ;}
void put2(){ puts("NO") ;}
void put3(){ puts("-1"); }
ll gcd(ll a,ll b){ return b==?a:gcd(b,a%b);}
using namespace std; const int manx=2e6+; double water[manx]; //水
double block[manx]; //区间块的长度
double ans[manx]; //答案 int main()
{
ll n = read();
for ( int i=; i<=n ;i++)
scanf("%lf",&water[i]);
ll l = ;
for ( int i= ; i<=n ;i++){
ans[++l] = water[i];
block[l] = ;
while ( l> && ans[l] < ans[l-]){
ans[l-]=( ans[l-]* block[l-] + ans[l] * block[l])
/ ( block[l] + block[l-]);
block[l-] += block[l];
--l;
}
}
for ( int i= ; i<=l ;i++)
for ( int j= ; j<= block[i]; j++)
printf("%.9lf\n",ans[i] );
return ;
}

最新文章

  1. 总结一下CSS中的定位 Position 属性
  2. ubuntu14.04上Virtualbox安装win7(使用Ghost镜像安装,启用USB设备支持,设置共享目录)
  3. /proc/sysrq-trigger该文件能做些什么事情-转载
  4. Android&#160;Studio&#160;优秀插件汇总
  5. 《机器学习实战》学习笔记——第13章 PCA
  6. Jquery中使用setInterval和setTimeout会提示缺少对象的错误,解决方法如下:
  7. Asp.net Request方法获取客户端的信息
  8. Beta Round #9 (酱油杯noi考后欢乐赛)最大伤害
  9. javascript基础学习(七)
  10. 多主一从mysql replication同步表的大胆尝试.
  11. Introducing &#39;bind&#39;
  12. Andrew Ng机器学习课程笔记--week11(图像识别&amp;总结划重点)
  13. break和continue 的区别
  14. 我在Windows下的第一个Shellcode
  15. node配置微信小程序解密消息以及推送消息
  16. History Api使用演示
  17. 后端解决 微信H5支付 商户参数格式错误 方法
  18. Java多线程编程模式实战指南一:Active Object模式(上)
  19. css实战——第一天
  20. 网络基础相关的知识 socket模块

热门文章

  1. MongoDB 添加用户名和密码
  2. 数据库中间件DBLE学习(二) 学习配置schema.xml
  3. Jenkins+robotframework持续集成环境(二)
  4. MY_0003:设置界面显示单位
  5. Java设计模式(四)工厂方法模式
  6. TCP 协议快被淘汰了,UDP 协议才是新世代的未来?
  7. [HNOI2015]接水果[整体二分]
  8. cookies欺骗-bugkuctf
  9. CF1254E Send Tree to Charlie
  10. Constructing Roads POJ - 2421 最小生成树板子题