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