hdu 1518 又一道搜尋經典

2021-06-22 05:37:35 字數 839 閱讀 5764

剛剛做過hdu 1455那道搜尋題,在來做這道,那就像切菜一樣。。。

好吧,還是說一下大意吧。。。這次是為正方形了。。。就是所有的木棒從頭到尾相連,判斷能否組成乙個正方形。。。搜尋過程沒有像1455那題有那麼多的剪枝

。。。orz,我是直接暴力的。。。還是上**吧。。。

1 #include2 #include3

using

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,退出。...