Problem
给出n个正整数,从中挑选若干个,使得他们的和为m。如果存在多个,输出排序后字典序最小的一组。如果没有找到任何一组,输出"No Solution"。
Solution
如果n大于15,从16开始分成两部分,先枚举后一半可能出现的值,map记录,然后按顺序枚举前一半,如果能和某个值组成m就记录每个数,返回,再枚举后一半,找到具体的数字。
主要是dfs写的太烂了,交对看别人的才知道怎么写。
Code
#include
#include
#include
#include
#include
#include
#include
#include