藍橋杯 PREV 3 帶分數

2021-10-05 02:08:38 字數 2382 閱讀 7565

資源限制

時間限制:1.0s 記憶體限制:256.0mb

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

還可以表示為:100 = 82 + 3546 / 197。

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

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

從標準輸入讀入乙個正整數n (n<1000*1000)

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

注意:不要求輸出每個表示,只統計有多少表示法!

我們可以發現每次只有十個數字而且還不能重複,很明顯的dfs

dfsdf

s的題目,我們把數字分成三部分,比如100=3

+69258

/714

100 = 3 + 69258 / 714

100=3+

6925

8/71

4中,blo

ck1=

3,bl

ock2

=69258,b

lock

3=

714block1=3,block2=69258,block3=714

block1

=3,b

lock

2=69

258,

bloc

k3=7

14,b lo

ck

1block1

block1

我們可以直接遍歷1

11 ~ n−1

n-1n−

1實現,blo

ck2,

bloc

k3

block2,block3

block2

,blo

ck3通過dfs

dfsdf

s找出每乙個不重複的陣列a

aa然後用乙個i(s

tep/

2≤i≤

step

−1

)i(step/2\leq i\leq step-1)

i(step

/2≤i

≤ste

p−1)

將這個a

aa切分成兩部分,也就是blo

ck2,

bloc

k3

block2,block3

block2

,blo

ck3。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef vector<

int> veci;

typedef vector vecl;

typedef pair<

int,

int> pii;

template

<

class

t>

inline

void

read

(t &ret)

inline

void

out(

int x)

bool book[20]

=;int a[20]

=;int cnt =0;

void

getnum

(int

&x,int

&y,int sp,

int n)

for(

int i = sp; i < n; i++)}

void

dfs(

int step,

int le,

int sum,

int num)

}return;}

for(

int i =

1; i <=

9; i++)}

intmain()

book[x %10]

=true

, x /=10

, num++;}

if(flag ==

true

)continue;if

(book[0]

==true

)continue

;dfs(0

, i, n, num);}

out(cnt)

;}

藍橋杯 PREV 3 帶分數

歷屆試題 帶分數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格...

藍橋杯 PREV 3 帶分數(dfs)

prev 3 帶分數 思路 根據題意我們需要找到滿足 n x z y n x z y的 x,y,z x y,z 三元組解的個數,且x,y zx,y,z中所有數字不相同且剛好是11到9 9的乙個排列 1.我們需要知道x x的位數不能超過n n 乙個數x x的位數可以用lg x 1 lg x 1計算得出...

藍橋杯 PREV 3 歷屆試題 帶分數

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標...