1494: 连续子串和续

http://www.acmore.net/problem.php?id=1494

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 99  Solved: 18

Submit
Status
Web Board

Description

小Y要去参加一场笔试,这场笔试有N道题目,每道题目有不同的分值和难度,分别为ai和bi。小Y想知道从某一题开始,至少连续K道题目,分值的和与难度的和的比率最大是多少?

Input

若干组测试数据,每组测试数据占3行。

第一行输出两个正整数N(1<=N<=10^6),K(1<=K<=N)。

第二行N个正整数a1,a2...aN表示N道题目的分值,其中(1<=ai<=1000)。

第三行N个正整数b1,b2...bN表示N道题目的难度,其中(1<=bi<=1000)。

Output

每组测试数据输出一个实数,表示满足题意的最大的比率,精确到小数点后4位。

Sample Input

5 3 1 2 3 4 5 1 1 3 4 5 3 1 100 200 300 3 2 1

Sample Output

1.2000 300.0000

HINT

Source

Lyush

设一个比例参数p,然后就是解决一个ai-p*bi的序列,至少连续K个,sum{ ai-p*bi } >= 0的问题了,二分枚举这个参数即可

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5
 6 using namespace std;
 7
 8 #define eps 1e-8
 9
10 const int INF=0x3f3f3f3f;
11 const int maxn=1000010;
12
13 int n,k;
14 int a[maxn],b[maxn];
15 double num[maxn];
16
17 int AC(double p){
18     double tmp=INF;
19     num[0]=0;
20     for(int i=1;i<=n;i++)
21         num[i]=num[i-1]+a[i]-p*b[i];
22     for(int i=k;i<=n;i++){
23         tmp=min(tmp,num[i-k]);
24         if(num[i]-tmp>=0)
25             return 1;
26     }
27     return 0;
28 }
29
30 double BinSearch(double l,double r){
31     double mid,ans;
32     while(r-l>eps){
33         mid=(l+r)/2;
34         if(AC(mid)){
35             ans=mid;
36             l=mid+eps;
37         }else
38             r=mid-eps;
39     }
40     return ans;
41 }
42
43 int main(){
44
45     //freopen("input.txt","r",stdin);
46
47     while(~scanf("%d%d",&n,&k)){
48         for(int i=1;i<=n;i++)
49             scanf("%d",&a[i]);
50         for(int i=1;i<=n;i++)
51             scanf("%d",&b[i]);
52         printf("%.4lf\n",BinSearch(0,1000));
53     }
54     return 0;
55 }

1494: 连续子串和续相关推荐

  1. 【算法】算法测试题4:最长公共连续子串

    问题描述 链接:https://www.nowcoder.com/ques... 来源:牛客网 给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度. 输入描述 输入为两行字符串(可 ...

  2. N 组连续子串最大和

    数组 a 中有 M 个数 , 将 M 个数分成 N 组 , 并且每组中的数据顺序和原数组中的顺序保持一致,求 N 组中的数据之和最大为多少? 向 dp 数组中赋初始值 ,如果 M == N ,则 dp ...

  3. Python获取一个字符串所有连续子串

    获取一个字符串所有连续子串组成集合(set)的长度,居然是Facebook的interview题目,我也做出来了,哈哈: def get_all_substrings(string):length = ...

  4. SPOJ687 Repeats(重复次数最多的连续子串)

    Repeats hihoCoder 1419 后缀数组四·重复旋律4(重复次数最多的连续子串) #include<bits/stdc++.h> using namespace std;// ...

  5. CodeForces 1506C(暴力求最长连续子串) acm寒假集训日记21/12/31or22/1/1

    题目如下: AC代码如下: #include<iostream> #include<algorithm> #include<cstring> #include< ...

  6. 求两字符串最长公共连续子串---C++编程

    题目:有两个字符串(可能包含空格),找出其中最长的公共连续子串,并输出其长度.  输入描述:输入为两行字符串(可能包含空格),长度均小于等于50. 输出描述:  输出为一个整数,表示最长公共连续子串的 ...

  7. 美团点评_给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。

    给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度. import java.util.*; public class Meituan_4 {public static void ...

  8. 对比两个字符串A、B的连续子串

    对比两个字符串A.B的连续子串 代码块 第一层循环是循环子串的长度,然后先将该长度下的: 方法1for (i=1;i<=len;i++) {//连续i个的子串 HashTable.clear() ...

  9. 经典题目题解:连续子串和

    连续子串和(subs) 问题描述: 给定n个整数,求其中至少k个连续数的最大和. 输入格式: 第一行为正整数t(≤5),表示数据组数:每组数据中,第一行为两个正整数n(≤3*105)和k(≤n):接下 ...

最新文章

  1. hihocoder offer收割编程练习赛11 B 物品价值
  2. 科普丨浅谈人工神经网络跌宕起伏七十年
  3. java servlet 作用_servlet的作用,servlet有什么用?
  4. 保驾护航金三银四,万字解析!
  5. bzoj1596[Usaco2008 Jan]电话网络*
  6. LoadRunner性能测试技术培训
  7. eclipse配置项目部署到到本地tomcat
  8. python能做什么毕业设计-有没有适合python做的毕设题目,现在不知道做什么了?...
  9. 均值(Mean)和均值标准误差(S.E. Mean)
  10. 至 上海神力科技有限公司 的留言 http://www.sl-power.com/
  11. STM32标准库与HAL库中的Mode和Pull设置
  12. 爬虫之scrapy环境安装
  13. I2C详解(2) I2C总线的规范以及用户手册(1) I2C 总线协议
  14. 运用Fluxion高效破解WiFi密码
  15. Java 关键字及其作用(保留字)
  16. 用C语言短除法求最大公因数用,用短除法求最大公因数
  17. 安全管理实务之四:口令管理(转)
  18. PIXHAWK飞控固件及代码基础介绍
  19. 酷炫的多选方案,拒绝重复劳动
  20. Hexo个人博客搭建教程

热门文章

  1. Git远程库版本回滚
  2. elasticsearch2.3安装以及集群部署
  3. Tomcat系列之Java技术详解
  4. 计算机视觉与模式识别国际期刊整理
  5. 第五章 Python数据结构
  6. 编程之美-一摞烙饼的排序方法整理
  7. eclipse导出jar包
  8. 【OpenCV3】图像翻转——cv::flip()详解
  9. 「 深入浅出 」集合List
  10. SQLMAP使用笔记