G.Interference Signal---河南省第八届程序设计大赛(dp)

G.Interference Signal

时间限制: 2 Sec  内存限制: 128 MB
提交: 47  解决: 18
[提交][状态]

题目描述

Dr.Kong’s laboratory monitor some interference signals. The interference signals can be digitized into a series of positive integer. May be, there are N integers a1,a2,…,an.

Dr.Kong wants to know the average strength of a contiguous interference signal block. the block must contain at least M integers.

Please help Dr.Kong to calculate the maximum average strength, given the constraint.

输入

The input contains K test cases. Each test case specifies:

* Line 1: Two space-separated integers, N and M.

* Lines2~line N+1:  ai  (i=1,2,…,N)

1 ≤ K≤ 8,  5 ≤ N≤ 2000,   1 ≤ M ≤ N,  0 ≤ ai ≤9999

输出

the maximum average strength

样例输入

2
10 6
6
4
2
10
3
8
5
9
4
1
5 2
10
3
8
5
9

样例输出

6500
7333题目大意: 求连续序列大于等于k个的最大平均 值  dp[i][j] 表示在j的位置的i个连续序列的最大和     dp[i][j] = max(dp[i-1][j-1] + a[j], dp[i][j])

只要公式推出来就很容易了
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include <queue>

using namespace std;
#define N 2500
#define ESP 1e-8
#define INF 0x3f3f3f3f
#define memset(a,b) memset(a,b,sizeof(a))

int a[N];
int dp[N][N];

int main()
{
    int T,n,k;
    scanf ("%d", &T);
    while(T --)
    {
        scanf("%d %d", &n, &k);
        for(int i=1; i<=n; i++)
            scanf("%d", &a[i]);

        memset(dp, 0);

        dp[1][1]=a[0];

        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
            {
                dp[i][j] = max(dp[i][j], dp[i-1][j-1]+a[j]);
            }
        }

        double Max=0;

        for(int i=k; i<=n; i++)
        {
            for(int j=i; j<=n; j++)
            {
                Max = max(Max, dp[i][j]*1.0/i*1.0);
            }
        }

        printf("%d\n", (int)(Max*1000.0));
    }
    return 0;
}
 
时间: 2024-10-11 22:22:12

G.Interference Signal---河南省第八届程序设计大赛(dp)的相关文章

引水工程--- 河南省第八届程序设计大赛(最小生成树)

就是最小生成树, 我刚开始想只要把所有边的权值保存下来就行了,我想把自建的便也直接保存下来,直接让他用prime算法跑一遍不就是答案么最后发现并不是, 我们直接在加的时候加呢个最小的就行了 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程,事关中华民族长远发展. “南水北调工程”,旨在缓解中国华北和西北 地区水资源短缺的国家战略性工程.就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区.我国南涝北旱,南水北调工程通过

南京理工大学第八届程序设计大赛(校外镜像)题解报告

总体来说,这次的题目还是不错的,不过有几题竟然是原题,着实有点让人心醉... A.偷吃糖果 Time Limit: 1000Ms Memory Limit: 65536KB Description 小鱼喜欢吃糖果.他有两盒糖果,两盒糖果分别仅由小写字母组成的字符串s和字符串t构成.其中'a'到'z'表示具体的某种糖果类别.他原本打算送给他喜欢的女生,但是要送给女孩子的话两盒糖果不能有差别(即字符串s和t完全相同).所以,他决定偷吃几块,他吃糖果的策略是每次选出一盒糖果中两个连续的同种类别的糖果,

南京理工大学第八届程序设计大赛(校外镜像) H 谁才是最强战舰!

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 #include<algorithm> 6 using namespace std; 7 typedef long long ll; 8 9 /* 10 官方题解: 11 充裕堆: 石子数量大于等于2 =1表示孤单堆 12 13 奇异局势,所有堆的 xor和 ==0. 14 15 非奇异

nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)

题目1237 题目信息 运行结果 本题排行 讨论区 最大岛屿 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王.  这是一个由海洋.岛屿和海盗组成的危险世界.面对危险重重的海洋与诡谲的对手,如何凭借智慧与运气,建立起一个强大的海盗帝国. 杰克船长手头有一张整个海域的海图,上面密密麻麻分布着各个海屿的位置及面

nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)

题目1238 题目信息 运行结果 本题排行 讨论区 最少换乘 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. 年轻人旅游不怕辛苦,不怕劳累,只要费用低就行.但Dr. Kong年过半百,他希望乘坐BUS从住的宾馆到想去游览的景点,期间尽可量地少换乘车. Dr. Kon买了一张旅游地图.他发现,市政部门为了方便游客,在各个旅游景点及宾馆,饭店等地方都设置了一些公

nyoj 1239 引水工程 (河南省第八届acm程序设计大赛)

题目1239 题目信息 运行结果 本题排行 讨论区 引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程,事关中华民族长远发展."南水北调工程",旨在缓解中国华北和西北地区水资源短缺的国家战略性工程.就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区.我国南涝北旱,南水北调工程通过跨流域的水资源合理配置,促进南北方经济.社会与人口.资

NYOJ - 716 - River Crossing --第六届河南省程序设计大赛 (简单DP!!)

River Crossing 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 Afandi is herding N sheep across the expanses of grassland  when he finds himself blocked by a river. A single raft is available for transportation. Afandi knows that he must ride on the raft for

NYOJ - 715 - Adjacent Bit Counts --第六届河南省程序设计大赛 (DP!!)

Adjacent Bit Counts 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 For a string of n bits x1, x2, x3, -, xn,  the adjacent bit count of the string  is given by     fun(x) = x1*x2 + x2*x3 + x3*x 4 + - + xn-1*x n which counts the number of times a 1 bit is adj

nyoj 712 探 寻 宝 藏(双线dp 第六届河南省程序设计大赛)

探 寻 宝 藏 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦的,到处都是陷阱.Dr.Kong决定让他的机器人卡多去探险. 但机器人卡多从左上角走到右下角时,只会向下走或者向右走.从右下角往回走到左上角时,只会向上走或者向左走,而且卡多不走回头路.(即:一个点最多经过一次).当