怎麼說呢,今天無聊就刷了一下藍橋杯的題目,畢竟也參加了兩屆,雖然每次運氣都很差。。。坑的一比,廢話不多說,今天剛好看了一下往屆的比賽題目,偶然發現一題感覺思路一看就有,但是無從下手的題目,
沒錯,就像你搜的這樣子,這道題目的名字就是「帶分數」。
剛剛開始做的時候,直接就是一股勁的爆搜,看了看時間複雜度,估計超時不超時是五五開,就是將1-9這9個數字進行全排列, 這個時間的複雜度是10!,用到了stl的乙個全排列函式,叫做next_permutation,
是要針對這題題目來寫的。
雖然這個想法很危險,很容易超時。。。。但是好歹寫出來再說,經過半小時的程式設計,我就蛋疼了,連
樣例都是過不了的,於是ctrl + a,然後刪除,直接推倒重寫,這次估計了一下複雜的有美酒先
將這個數字表示為v = a + b / c;所以a肯定比v小,那麼最外層就可以確定了,然後將
a進行拆分,進行判斷,之後就是將沒用到的數字存放在乙個陣列裡面,利用stl的全排列,然後將之
後的數字進行組合,由於b/c這個形式,感覺就是b要比c大,同時整除,這時候又是一重剪枝,大概
的時間複雜度沒去算過,反正提交一發,1a之後表示就沒有去算過
下面是具體的事實表明可以,以及附上ac**:#include #include#include
using
namespace
std;
intmain()
else
}if(f == 0
) }}}
}printf(
"%d\n
", ans);
return0;
}
藍橋杯 帶分數
問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出格式 ...
藍橋杯 帶分數
問題描述 100 可以表示為帶分數的形式 100 3 69258 714。還可以表示為 100 82 3546 197。注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。輸入格式 從標準輸入讀入乙個正整數n n 1000 1000 輸出格式 ...
藍橋杯 帶分數
100 可以表示為帶分數的形式 100 3 69258 714 還可以表示為 100 82 3546 197 注意特徵 帶分數中,數字1 9分別出現且只出現一次 不包含0 類似這樣的帶分數,100 有 11 種表示法。題目要求 從標準輸入讀入乙個正整數n n 1000 1000 程式輸出該數字用數碼...