1.29题目翻译

链接:https://acs.jxnu.edu.cn/problem/HDU1250

Given a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t=4, n=6, and the list is [4,3,2,2,1,1], then there are four different sums that equal 4: 4,3+1,2+2, and 2+1+1.(A number can be used within a sum as many times as it appears in the list, and a single number counts as a sum.) Your job is to solve this problem in general.

输入:

The input will contain one or more test cases, one per line. Each test case contains t, the total, followed by n, the number of integers in the list, followed by n integers x1,...,xn. If n=0 it signals the end of the input; otherwise, t will be a positive integer less than 1000, n will be an integer between 1 and 12(inclusive), and x1,...,xn will be positive integers less than 100. All numbers will be separated by exactly one space. The numbers in each list appear in nonincreasing order, and there may be repetitions.

输出:

For each test case, first output a line containing 'Sums of', the total, and a colon. Then output each sum, one per line; if there are no sums, output the line 'NONE'. The numbers within each sum must appear in nonincreasing order. A number may be repeated in the sum as many times as it was repeated in the original list. The sums themselves must be sorted in decreasing order based on the numbers appearing in the sum. In other words, the sums must be sorted by their first number; sums with the same first number must be sorted by their second number; sums with the same first two numbers must be sorted by their third number; and so on. Within each test case, all sums must be distince; the same sum connot appear twice.

给定一个指定总和t和一个n个整数的列表,使用列表中的数字加和求出各种不同的和作为结果。例如,如果t=4,n=6,那么列表为[4,3,2,2,1,1],有四种不同的加和方式:4,3+1,2+2和 2+1+1。(一个数字可以在一个总和中使用它在列表中出现的次数,单个数字也可以算作和)你的任务是在总数上 解决这个问题。

输入:

输入将包含一个或多个测试数据,每行一个。每个测试用例包含总整数t,然后是列表中的整数n,然后是n个整数x1,...,xn。如果n=0,它表示输入结束,否则t将是小于1000的正整数,n将是1到12之间的整数,x1,...,xn将是小于100的正整数。所有的数字,wi 将只隔一个空格。每个列表中的数字以不增加的顺序出现,并且可能会有重复。

输出;

对每组测试数据,首先输出一条包含“和”、总和和一个冒号的行。然后输出每个每行一条的和数;如果没有和,则输出行“NONE”。每个总和中的数字都必须是这样的 以不增加的顺序出现。一个数字可以在和数中重复出现等于在原始列表中重复的次数。和本身必须根据数字a按递减顺序排序。换句话说,这些和必须按它们的第一个数字进行排序;具有相同的第一个数字的和必须按它们的第二个数字进行排序;具有相同的前两个数字的和必须是按第三个数字排序;以此类推。在每个测试用例中,所有的和必须间隔不相邻;相同的和不会出现两次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值