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
3sample output1 1 2
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。...