題中的資料量很小,但單純的回溯會超時,所以需要剪枝,這裡減了三個枝。
1.當即使所有剩餘點都算上都不能取k個點時。
2.當當前點大於k個時。
3.當發現加入乙個點後距離陣列沒有變化時,說明這個點可有可無以後不再計算。
#include
#include
#include
#include
using
namespace std;
const
int maxn =
100, inf =
0x3f3f3f3f
;int n, m, k;
struct node house[maxn]
, post[maxn]
;double c[maxn]
[maxn]
;bool vis[maxn]
;vector<
int>vet;
double ans =
0x3f3f3f3f
;double dist[maxn]
;void
dfs(
int pos,
double sum,
int num, vector<
int>v)
return;}
dfs(pos +
1, sum, num, v);if
(vis[pos]
)return
;double temp[maxn]
;memcpy
(temp, dist,
sizeof
(temp));
int flag =0;
for(
int i =
1; i <= n; i++)if
(dist[i]
> c[pos]
[i])
sum =0;
for(
int i =
1; i <= n; i++)if
(flag)
else vis[pos]=1
;}intmain()
dfs(1,
0,0, v)
;sort
(vet.
begin()
, vet.
end())
;for
(int i=
0; i < vet.
size()
;i++
) cout << endl;
system
("pause");
return0;
}```
藍橋杯練習系統 歷屆試題 郵局 (詳細解釋)
時間限制 1.0s 記憶體限制 256.0mb 問題描述 c村住著n戶村民,由於交通閉塞,c村的村民只能通過信件與外界交流。為了方便村民們發信,c村打算在c村建設k個郵局,這樣每戶村民可以去離自己家最近的郵局發信。現在給出了m個備選的郵局,請從中選出k個來,使得村民到自己家最近的郵局的距離和最小。其...
藍橋杯 試題 歷屆試題 幸運數
題目鏈結 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的 篩法 生成 首先從1開始寫出自然數1,2,3,4,5,6,1 就是第乙個幸運數。我們從2這個數開始。把所有序號能被2整除的項刪除,變為 1 3 5 7 9 把它們縮緊...
藍橋杯試題 歷屆試題 分糖果
問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲 每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。你的任務是 在已知的初始糖果情形下,老師一共需要補...