暴力求解總結

2021-08-25 11:46:09 字數 929 閱讀 7727

輸入正整數n,按從小到大的順序輸出所有形如abcde/fghij = n的表示式,其中a~j恰好為數字0~的乙個排列(可以有前導0),2≤n≤79。

樣例輸入:

62 樣例輸出:

79546 / 01283 = 62

94736 / 01528 = 62

·「分析」

分成兩部分加一些細節處理。

列舉數字(分母),至少是四位數,從1000開始,分子等於分母×n,不能超過5位,所以分母最大到9999。

判斷每個數字是否用過,還有第一位是不是0。

輸入正整數k,找到所有的正整數x≥y,使得1/k=1/x+1/y。

樣例輸入:

2 12

樣例輸出:

2 1/2 = 1/6 + 1/3

1/2 = 1/4 + 1/4

8 1/12 = 1/156 + 1/13

1/12 = 1/84 + 1/14

1/12 = 1/60 + 1/15

1/12 = 1/48 + 1/16

1/12 = 1/36 + 1/18

1/12 = 1/30 + 1/20

1/12 = 1/28 + 1/21

1/12 = 1/24 + 1/24

·「分析」

學會找到列舉的範圍——x>y, => 1/x <= 1/y; => 1/k - 1/y <= 1/y => y <= 2k .此題精髓在此。

頻寬(bandwidth, uva 140)

給出乙個n(n≤8)個結點的圖g和乙個結點的排列,定義結點i的頻寬b(i)為i和相鄰結點

在排列中的最遠距離,而所有b(i)的最大值就是整個圖的頻寬。給定圖g,求出讓頻寬最小

的結點排列。

·「分析」

做法就是直接列舉排列,然後判斷答案是否更優。

列舉暴力求解

題目描述 有n個賭徒打算賭一局。規則是 每人下乙個賭注,賭注為非負整數,且任意兩個賭注都不相同。勝者為賭注恰好是其餘任意三個人的賭注之和的那個人。如果有多個勝者,我們取賭注最大的那個為最終勝者。例如,a,b,c,d,e分別下賭注為2 3 5 7 12,最終勝者是e,因為12 2 3 7。輸入輸入包含...

暴力求解法

1 簡單列舉 輸入正整數n,按從小到大的順序輸出所有形如abcde fghij n的表示式,其中a j恰好位數字0 9的乙個排序 可以有前導0 2 n 79.樣例輸入 樣例輸出 79546 01283 62 94736 01528 62 思路 只要列舉fghij就可以算出abcde,然後判斷所有數字...

暴力求解 列舉法

0 9全排列 輸入正整數n,按從小到大的順序輸出所有形如abcde fghij n的表示式,其中a j恰好為數字0 9的乙個排列,n為2到79 樣例輸入 62 樣例輸出 79546 01283 62 94736 01528 62剛開始想用堆疊來實現0到9全排列,還有五個for迴圈也可以,但是想到st...