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

求助!!!YTUOJ-完美旗手队列

时间:2015-04-03 15:30:11      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:c++   博客   编程   测试   数据   

想不通为什么错误,自己用笔算了几组数据,再通过程序测试还是正确的(虽然测试数据没有太大),所以求路过的大神指点一下。

题目描述

YT大学定于5月16日举行校运动会。学校有 n 个系。组委会要求每个系有 m 个运动员参加开幕式,并且每个系的 m 个运动员站成一队。我们假设 n*m 名运动员站成一个nm列的队列,表示为Anm下图中的每一行代表一个系。

 

a11 a12 a13 a1m

a21 a22 a23 a2m

     

an1 an2 an3 anm

 

现组委会要求每系在 m 个运动员中选出一名旗手站在本系的前面,为了视觉上的美观要求相邻的旗手身高差距尽可能的小,形成一个完美旗手队列。比如我们从上述队列中选择出{a12, a24, a33, , ank}作为旗手队列。则这n个人的身高差最小的队列是完美旗手队列。比如有4个系,各系选择的旗手分别为a,b, c, d, val=|a-b|+|b-c|+|c-d| 最小的选择为完美旗手队列。你能帮YT大学选择完美旗手队列吗?

输入

多个测试样例,每个测试样例第一行为两个整数n, m (1 <= n, m <= 1000) ,接着是n行整数数列,表示原始的队列,整数值表示运动员的身高(<=10000)。

输出

对于每一个测试样例,输出最小的val值。

样例输入

3 32 3 14 7 67 9 2

样例输出

3

提示

旗手的身高是3, 42

我的代码:

#include <iostream>
#include <cmath>
#define MAXN 1000
using namespace std;
int a[MAXN][MAXN];
int Val[MAXN];
int main()
{
    int N,M;
    int min=100000000;
    cin>>N>>M;
    for (int i=0;i<N;i++)
        Val[i]=0;
    for (int i=0; i<N; i++)
        for (int j=0; j<M; j++)
            cin>>a[i][j];
    for (int i=0; i<N; i++)
    {
        for (int j=0; j<M-1; j++)
        {
            Val[i]+=(fabs(a[i][j]-a[i][j+1]));
        }
    }
    for (int i=0; i<N; i++)
    {
        if (Val[i]<min)
            min=Val[i];
    }
    cout<<min;
    return 0;
}


 

错误提示:

技术分享

 

 

求助!!!YTUOJ-完美旗手队列

标签:c++   博客   编程   测试   数据   

原文地址:http://blog.csdn.net/liuchang54/article/details/44853951

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