码迷,mamicode.com
首页 > 其他好文 > 详细

SzNOI 数据结构 c015:缓慢的网速

时间:2015-02-10 16:50:26      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:algorithm   下载电影   缓慢的网速   c++   

这道题看着很简单,但是题目的测试量有点大,容易超时,不能使用暴力破解

而且我个人觉得这题目四舍五入的数据怪怪的,NA好多次,最后四舍五入的数据用3以后能用了

原题如下:

内容:

 放暑假了,小明想上网下载一些电影看,但是缓慢的网速令他无法忍受。他了解到了接下来的N个小时中的网速情况,想找一段连续的M个小时来下载电影,并且希望这M个小时的平均网速尽可能的大,你能编一个程序帮助他实现愿望吗? 

输入输入文件第一行包含两个整数NM1<=M<=N<=1000000;第二行包含N个整数,表示第N个小时的网速。相邻两数之间用空格隔开。 

输出输出文件仅有一行包含一个实数,表示最大的平均网速,保留小数点后两位。 

样例

输入

6 3

3 6 1 5 6 4

输出

5.00 



下面是代码:

#include<algorithm>
#include<iostream>
#include<stdio.h>
using namespace std ;
int main () {
	long int n , m ;
	cin >> n ;
	cin >> m ;
	static long int num =0;
	int cmp(int x, int y) ;
	long int  speed[1000000]={0} ,total[1000000]={0} ;
	for(long int  i = 0 ; i< n ; i++) {
		cin >> speed[i] ;
	}
	/*for(long int  j = 0 ;j < (n-m) ;j++) {
		for(long int  k=0;k<m;k++){
			total[j] += speed[j+k] ;
		}
	}*/
	for(long int k =0 ; k <m;k++) {
		total[0] +=speed[k] ;
	}
	for(long int j = 1 ;j < (n-m) ; j++) {
		total[j] = total[j-1]-speed[j-1] +speed[m-1+j] ;
	}
	sort(total,total+n-m,cmp) ;
	float answer = total[0]*1.00/m ;
	//float end =(int)((answer * 100) + 0.5)*1.0 / 100.0;
	float end = ( answer*1000 + 3 ) *1.0/1000.0;
	printf("%.2f",end);
}
int cmp(int x ,int y) {
	return x> y ;
}


好坑的题目

SzNOI 数据结构 c015:缓慢的网速

标签:algorithm   下载电影   缓慢的网速   c++   

原文地址:http://blog.csdn.net/hhooong/article/details/43703493

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!