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

本文共 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

你可能感兴趣的文章
oracle kill所有plsql developer进程
查看>>
python实现登录查询(可以模糊查询)
查看>>
LAMP架构(apache用户认证,域名重定向,apache访问日志)
查看>>
PHP设计模式:原型模式
查看>>
struts2.0的json操作
查看>>
SQL注入神器——sqlmap
查看>>
Unity导航 (寻路系统Nav Mesh Agent)
查看>>
SaltStack配置语法-YAML和Jinja
查看>>
运用免费OA让你有意想不到的效果
查看>>
一些软件设计软则
查看>>
Linux运维基础命令
查看>>
使用PowerShell配置IP地址
查看>>
第十一章 MySQL运算符
查看>>
JAVA常见算法题(十七)
查看>>
GUI鼠标相关设置
查看>>
使用 <Iframe>实现跨域通信
查看>>
闭包--循序学习
查看>>
项目实战之集成邮件开发
查看>>
解决C3P0在Linux下Failed to get local InetAddress for VMID问题
查看>>
1531 山峰 【栈的应用】
查看>>