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

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

题目描述

YT大学定于5月16日举行校运动会。学校有 n 个系。组委会要求每个系有 m 个运动员参加开幕式,并且每个系的 m 个运动员站成一队。我们假设 n*m
名运动员站成一个n行m列的队列,表示为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, 4和2。

我的代码:

#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;
}

错误提示:

时间: 2024-11-02 11:44:10

求助!!!YTUOJ-完美旗手队列的相关文章

nmq消息队列解析

消息中间件NMQ 1.What is nmq? nmq = new message queue; 一个通用消息队列系统 为在线服务设计 什么是消息队列?问什么需要?有哪些功能? 消息队列的本质:1.多个不同的应用之间实现相互通信的一种异步传输模式2.异步3.解耦 业界有哪些比较好的mq? yahoo YMB .twitter Kestrel.amazon SQS.apache kafka 百度的nmq和bigpipe 那么为什么会有这么多的实现呢? 影响设计的关键需求: 1.数据安全性 2.传输

TCP带外数据

传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的通道.linux系统的套接字机制支持低层协议发送和接受带外数据.但是TCP协议没有真正意义上的带外数据.为了发送重要协议,TCP提供了一种称为紧急模式(urgentmode)的机制.TCP协议在数据段中设置URG位,表示进入紧急模式.接收方可以对紧急模式采取特殊的处理.很容易看

你必须知道的八大数据结构

*本文摘自 大数据文摘 * 算法 + 数据结构 = 编程 瑞士计算机科学家Niklaus Wirth在1976年写了一本书,名为<算法+数据结构=编程>.这个等式仍被奉为真理..即便是对于一些非常基础的工作来说,学习数据结构也是必须的.那么,就让我们先从一些基本概念开始入手 什么是数据结构? 简单地说,数据结构是以某种特定的布局方式存储数据的容器.这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的.首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构

OpenVPN多处理之-多队列TUN多线程

1.有一点不正确劲 在改动了那个TUN驱动后,我在想,为何我总是对一些驱动程序进行修修补补而从来不从应用程序找解决方式呢?我改动了那个TUN驱动,可是能保证我的改动对别的应用一样可用吗?难道TUN驱动就OpenVPN一家在用?这绝不可能,既然我想到了这个方法,肯定别人也想到了,仅仅所以网上没有资料,是由于这些牛人不屑于此罢了.       使用原生的没有改动的TUN驱动,怎样?Well,let's go on!       问题在哪里,问题在假设我启动多个OpenVPN进程,那么它们每个的mul

Disruptor——一种可替代有界队列完成并发线程间数据交换的高性能解决方案

本文翻译自LMAX关于Disruptor的论文,同时加上一些自己的理解和标注.Disruptor是一个高效的线程间交换数据的基础组件,它使用栅栏(barrier)+序号(Sequencing)机制协调生产者与消费者,从而避免使用锁和CAS,同时还组合使用预分配内存机制.缓存行机制(cache line).批处理效应(batch effect)来达到高吞吐量和低时延的目标.目前Disruptor版本已经迭代至3.0,本论文是基于Disruptor1.0写就,在新版本中,相对与1.0版本,其核心设计

BZOJ1499 单调队列+DP

1499: [NOI2005]瑰丽华尔兹 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 1560  Solved: 949[Submit][Status][Discuss] Description 你跳过华尔兹吗?当音乐响起,当你随着旋律滑动舞步,是不是有一种漫步仙境的惬意?众所周知,跳华尔兹时,最重要的是有好的音乐.但是很少有几个人知道,世界上最伟大的钢琴家一生都漂泊在大海上,他的名字叫丹尼?布德曼?T.D.?柠檬?1900,朋友们都叫他1900.

队列、线程、进程、协程

一.线程 1.基本使用 创建线程的两种方式: import threading def f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,)) t.start() #以下为执行结果 123 import threading class MyThread(threading.Thread): def __init__(self, func,args): self.func = func self.args = args su

【转载】浅谈算法和数据结构: 一 栈和队列

作者:yangecnu(yangecnu's Blog on 博客园) 出处:http://www.cnblogs.com/yangecnu/ 最近晚上在家里看Algorithms,4th Edition,我买的英文版,觉得这本书写的比较浅显易懂,而且“图码并茂”,趁着这次机会打算好好学习做做笔记,这样也会印象深刻,这也是写这一系列文章的原因.另外普林斯顿大学在Coursera 上也有这本书同步的公开课,还有另外一门算法分析课,这门课程的作者也是这本书的作者,两门课都挺不错的. 计算机程序离不开

【万字总结】图解堆算法、链表、栈与队列(多图预警)

转自:http://blog.csdn.net/nomasp/article/details/50349172 堆算法 什么是堆 堆(heap),是一类特殊的数据结构的统称.它通常被看作一棵树的数组对象.在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开始执行,或者某些不短小.但很重要的作业,同样应当拥有优先权.而堆就是为了解决此类问题而设计的数据结构. 二叉堆是一种特殊的堆,二叉堆是完全二叉树或者近似完全二叉树,二叉堆满足堆特性:父