BestCoder Round #6(1002)hdu4982(贪心)

来源:互联网 发布:小学语文课文配音软件 编辑:程序博客网 时间:2024/06/14 08:31

Goffi and Squary Partition


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 18    Accepted Submission(s): 12


Problem Description
Recently, Goffi is interested in squary partition of integers.

A set X of k distinct positive integers is called squary partition of n if and only if it satisfies the following conditions:

  1. the sum of k positive integers is equal to n
  2. one of the subsets of X containing k1 numbers sums up to a square of integer.

For example, a set {1, 5, 6, 10} is a squary partition of 22 because 1 + 5 + 6 + 10 = 22 and 1 + 5 + 10 = 16 = 4 × 4.

Goffi wants to know, for some integers n and k, whether there exists a squary partition of n to k distinct positive integers.
 
Input
Input contains multiple test cases (less than 10000). For each test case, there's one line containing two integers n and k (2n200000,2k30).
 
Output
For each case, if there exists a squary partition of n to k distinct positive integers, output "YES" in a line. Otherwise, output "NO".
 
Sample Input
2 24 222 4
 
Sample Output
NOYESYES

题意:构造k个数,使得总和为n,且存在k-1个数的总和为一个完全平方数,能构造输出YES,否则输出NO

思路:贪心,先找到小于n且最接近n的完全平方数x,然后构造前k-1个数使得总和为x,那么第k个数固定为y=n-x

          做到这里就可以分情况讨论了

         1.  y不等于1~k-1里的数,如果 y 不等于 k 则有解,如果 y=k ,如果x-k*(k-1)/2=1,则无解,否则有解

         2.  y等于1~k-1里的数,显然y不可能等于k了,则将1~k-1里等于y的数替换为k即可,只要前k-1个数的总和<=x则有解,否则无解

0 0
原创粉丝点击