| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
刚刚试用dfs可以0ms!个人分享,请不要喷!刚开始和大家一样16ms,但是看到有人有0ms通过,就想试下能不能搜索条件!
最后发现当差值为0时可以停止下面的搜索!0是最小的差值,如果存在0就没必要在搜索!
代码如下:
#define max 2147483647
int dfs(int min,int i)
{
int x,y;
if(i==0)
{
if(H[i]>=min)
return H[i]-min;
else
return max;
}
if(H[i]<min)
{
x=dfs(min-H[i],i-1);
if(x==0)
return 0;
y=dfs(min,i-1);
}
else
returned 0;
if(x>y)
return y;
else
return x;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator