藍橋杯 帶分數 dfs

2021-10-02 08:26:51 字數 1012 閱讀 7785

100 可以表示為帶分數的形式:100=3+69258/714

注意特徵:帶分數中,數字 1∼9 分別出現且只出現一次(不包含 0)。

類似這樣的帶分數,100 有 11 種表示法。

輸入格式

乙個正整數。

輸出格式

輸出輸入數字用數碼 1∼9 不重複不遺漏地組成帶分數表示的全部種數。

資料範圍

1≤n<106

輸入樣例1:

100輸出樣例1:

11輸入樣例2:

105輸出樣例2:

6做法:先列舉右邊式子的整數a,再列舉右邊分母c, 可得b = nc - ac 然後將b分解對應存入st,進行判斷。

#include 

#include

#include

#include

using namespace std;

typedef long

long ll;

const

int n =10;

int n,ans;

bool st[n]

, backup[n]

;bool check

(int a,

int c)

for(

int i =

1; i <=

9; i++)}

return

true;}

void

dfs_c

(int u,

int a,

int c)}}

void

dfs_a

(int u,

int a)}}

intmain()

藍橋杯 帶分數 求教dfs

題幹如下 100 可以表示為帶分數的形式 100 3 69258 714 還可以表示為 100 82 3546 197 注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。題目要求 從標準輸入讀入乙個正整數n n 1000 1000 程式輸出該...

藍橋杯 帶分數 DFS應用

問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出格式 ...

藍橋杯 歷屆試題 帶分數 DFS

感覺這道題對於初學者來說真的很好,dfs 剪枝 數學。注釋都在 裡了,如下 include include include include include define inf 0x3fffffff using namespace std typedef long long ll const int...