Backward Digit Sums Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4281 Accepted: 2470
Description
FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N <= 10) in a certain order and then sum adjacent numbers to produce a new list with one fewer number. They repeat this until only a single number is left. For example, one instance of the game (when N=4) might go like this:3 1 2 4 4 3 6 7 9 16Behind FJ's back, the cows have started playing a more difficult game, in which they try to determine the starting sequence from only the final total and the number N. Unfortunately, the game is a bit above FJ's mental arithmetic capabilities.
Input
Line 1: Two space-separated integers: N and the final sum.Output
Line 1: An ordering of the integers 1..N that leads to the given sum. If there are multiple solutions, choose the one that is lexicographically least, i.e., that puts smaller numbers first.Sample Input
4 16
Sample Output
3 1 2 4
Hint
Explanation of the sample:Source
USACO 2006 February Gold & Silver
這個題意就是給你一個n和m,然後n個數排列後像上面的那樣計算出一個數,如果和m想同就ok,輸出最小的序列
思路:
直接dfs枚舉每個序列,如果有滿足結束,不過我代碼中有個傳地址的地方讓我bug了幾分鐘,細節在代碼中
#include#include #include #include using namespace std; #define N 20 int a[N],ans[N]; int vis[N]; int n,m; int yes; int fdd(int a[],int n) { if(n==1) return a[0]; int i; for(i=0;i