若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1107: Problem C: Jolly Jumpers

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,365

题目描述

Problem C: Jolly Jumpers
A sequence of n > 0 integers is called a jolly jumper if the absolute values of the difference between successive elements take on all the values 1 through n-1. For instance,

1 4 2 3

is a jolly jumper, because the absolutes differences are 3, 2, and 1 respectively. The definition implies that any sequence of a single integer is a jolly jumper. You are to write a program to determine whether or not each of a number of sequences is a jolly jumper.
Each line of input contains an integer n < 3000 followed by n integers representing the sequence. For each line of input, generate a line of output saying "Jolly" or "Not jolly".

输入

暂无

输出

暂无

样例输入

4 1 4 2 3
5 1 4 2 -1 6

样例输出

Jolly
Not jolly

参考代码

#include <stdio.h>
#include <stdlib.h>
int people[1000];
int i,j,k,n,tot,best;
char cando[101][50000];
main() 
{
    scanf("%d",&n);
    for (i=0;i<n;i++) 
    {
        scanf("%d",&people[i]);
        tot += people[i];
    }
    cando[0][0] = 1;
    for (i=0;i<n;i++) 
    {
        /* try every person */
        for (j=n/2;j>=0;j--) 
        {
            for (k=45000;k>=0;k--) 
            {
                if (cando[j][k]) cando[j+1][k+people[i]]=1;
            }
        }
    }
    for (i=0;i<=45000;i++) 
    {
        if (!cando[n/2][i]) continue;
        if (abs(tot-2*i) < abs(tot-2*best)) best = i;
    }
    if (best > tot-best) best = tot-best;
    printf("%d %dn",best,tot-best);
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist