博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uva 1451
阅读量:6006 次
发布时间:2019-06-20

本文共 1083 字,大约阅读时间需要 3 分钟。

题意:给一段长度为n的01序列,要求找出长度大于L的一个连续子序列,且这个连续子序列中1的密度是最大的。

思路:参考这篇博客

#include
using namespace std;char str[100100];int sum[100100];int S[100100];double Gra[100100];double fun(int i,int j){ return (sum[j]-sum[i])*1.0/(j-i);}int main(){ //freopen("in.txt","r",stdin); int T; cin>>T; while(T--){ int n,L; cin>>n>>L; cin>>str; sum[0]=0; for(int i=1;i<=n;i++) sum[i]=sum[i-1]+str[i-1]-'0'; int base=0,top=-1; int l=0,r=L; double ans=(sum[L]-sum[0])*1.0/L; for(int i=L;i<=n;i++){ int j=i-L; while(top>base&&fun(S[top],j)<=fun(S[top-1],j)) top--; S[++top]=j; while(base
=fun(S[base],i)) base++; double tmp=fun(S[base],i); if(ans
i-S[base]))){ l=S[base];r=i;ans=tmp; } } cout<
<<" "<
<
View Code

 

转载于:https://www.cnblogs.com/onlyAzha/p/5073212.html

你可能感兴趣的文章
由setter,getter导致JSON.toJSONString()丢失部分字段
查看>>
用户及组管理useradd、userdel、groupadd、groupdel
查看>>
19.7 zabbix的主动模式和被动模式
查看>>
计算机网络之面试常考 转
查看>>
高级VIM
查看>>
积攒了这么多技术干货,总有一款适合你
查看>>
bed文件
查看>>
修改linux默认栈大小
查看>>
IIS URL重写 http to https
查看>>
CentOS 7中Docker一些小错误解决方法
查看>>
什么是Java Marker Interface(标记接口)
查看>>
组件化架构漫谈
查看>>
你所知道的BCH有哪些应用场景呢?
查看>>
PXE+Kickstart+DHCP+Apache+tftp 批量部署常见错误总结
查看>>
华丽转身——如何从技术岗位走向管理岗位
查看>>
【linux基础】03、linux使用入门
查看>>
Cobbler详解
查看>>
shell--位置参数 & if 的相关参数
查看>>
tabhost的使用
查看>>
Android使用Http连接服务器,解析JSON, XML等教程
查看>>