hoj 1061 排列樹問題

2022-03-27 08:32:51 字數 1810 閱讀 7106

problem c:排列樹問題

time limit:5000ms  memory limit:65536k

total submit:55 accepted:3

description

試設計乙個用回溯法搜尋排列空間樹的函式。該函式的引數包括結點可行性判定函式和上界函式等必要的函式,並將此函式用於解圓排列問題。

圓排列問題描述如下:給定n 個大小不等的圓c1 , c2 ,..., cn ,現要將這n 個圓排進乙個矩形框中,且要求各圓與矩形框的底邊相切。圓排列問題要求從n 個圓的所有排列中找出有最小長度的圓排列。例如,當n=3,且所給的3 個圓的半徑分別為1,1,2 時,這3 個圓的最小長度的圓排列是1,2,1,其最小長度為2 + 4*sqr(2)。

程式設計任務:

對於給定的n(n≤≡10)個圓,程式設計計算最小長度排列。

input

輸入由多組測試資料組成。

每組測試資料輸入的第一行是1 個正整數n,表示有n個圓。第2行有n個正數,分別表示n個圓的半徑。

output

對應每組輸入,輸出的每行是計算出的最小長度,保留3 位小數。

sample input

3

1 1 2

sample output

7.657
[submit]   [go back]   [status]   [clarify]

#include 

<

iostream

>

#include 

<

cmath

>

#define

max 13

using

namespace

std;

intnn;

class

circle

void

set();

void

swap(

inti,

intj);

double

center(

intt);

void

computer();

void

backtrack(

intt);

double

getmmin();

};void

circle::set()

}void

circle::swap(

inti,

intj)

double

circle::center(

intt)  

//????????????????????????????

return

temp;

}void

circle::computer()   

//??????????????????

if(high

-low

<

mmin)

mmin

=high

-low;

}void

circle::backtrack(

intt)

swap(t,j);}}

}double

circle::getmmin()

/*double circle::circleperm(int n,double *a)

*/int

main()

return0;

}

xsy1061 排列 樹狀陣列

題目大意 給你乙個 1 到 n 的排列,問是否存在一對數 a,b 1 a,b n,a b 滿足 a b 為偶數且 a b 2 在 a 和 b 之間。資料範圍 n 3 times 10 xfz 智商 1 系列題目 考慮到此題並沒有問你存在多少對,而是是否存在,所以不要往統計有多少對上想!我們考慮已經加...

hdu 4248排列問題

一看就可以用母函式做,不過好久沒練dp了,所以還是用dp做了。用dp i j 表示前i種石頭排出j個出來的種數,當考慮第i種石頭石,列舉其使用的個數即可。wa了好幾次,是整數相乘精度的問題,使用long long就過了。hdu1004 win.cpp created on 2012 7 24 aut...

下一排列問題(全排列暴力)

time limit 1000 ms memory limit 32768 kb description lele 最近上課的時候都很無聊,所以他發明了乙個數字遊戲來打發時間。這個遊戲是這樣的,首先,他拿出幾張紙片,分別寫上0到9之間的任意數字 可重複寫某個數字 然後,他叫同學隨便寫兩個數字x和k。...