剛剛做過hdu 1455那道搜尋題,在來做這道,那就像切菜一樣。。。
好吧,還是說一下大意吧。。。這次是為正方形了。。。就是所有的木棒從頭到尾相連,判斷能否組成乙個正方形。。。搜尋過程沒有像1455那題有那麼多的剪枝
。。。orz,我是直接暴力的。。。還是上**吧。。。
1 #include2 #include3using
namespace
std;45
struct
stick;
9 stick sticks[21
];10
intn,len;
1112
int cmp(const stick &s1,const stick &s2)
15//
len為所圍成的正方形的邊長,l為當前木棒的長度
16int dfs(int len,int l,int count,int
pos)else
if(len>(l+sticks[i].length))32}
33return0;
34}3536
intmain()
47//
不是4的倍數的以及木棒的根數少於4的都不能
48if(len%4||n<4
)52 len/=4
;53 sort(sticks,sticks+n,cmp);
54if(dfs(len,0,0,0
))else
57 printf("
no\n");
58}59return0;
60 }
又一道演算法題
乙個不透明的箱子裡共有紅,黃,藍,綠,白五種顏色的小球,各個小球的數量非常多而且接近相等,每種顏色的小球大小相同,質量相等,每個人從籃子裡抽出兩個小球,請問至少需要多少個人抽,才能保證有兩個人抽到的小球顏色相同 a.6 b.11 c.13 d.16 e.21 f.26 其實這道題很簡單我們就想每個人...
一道搜尋好題
這個題真的叫這個名字 一道搜尋好題 我也很絕望 但是這並不是好題推薦 題目描述 給定乙個數s,找任意個正整數a1,a2,an,使得它們的和恰好等於s,且它們的倒數之和與1的差不超過10 6。輸出任意一種方案或者輸出無解。s 65536 輸入樣例 10輸出樣例 2 4 4 看起來非常的不靠譜對不對 實...
一道搜尋好題
給定乙個數s,找任意個正整數a1,a2,an,使得它們的和恰好等於s,且它們的倒數之和與1的差不超過10 6。輸出任意一種方案或者輸出無解。s 65536 解析 事實上也是簡單的搜尋。從小到大列舉每個數,加入試試看。兩個剪枝 當前的和加上最大的和到不了1,退出。當前的和加上最小的和都超過了1,退出。...