程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 3187 Backward Digit Sums(dfs)

POJ 3187 Backward Digit Sums(dfs)

編輯:C++入門知識

POJ 3187 Backward Digit Sums(dfs)


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

         16
Behind 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.

Write a program to help FJ play the game and keep up with the cows.

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:

There are other possible sequences, such as 3 2 1 4, but 3 1 2 4 is the lexicographically smallest.

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





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved