第三筆測資有誤?
雖然我是寫暴搜不會其他方法
搜索部分 n是車子數量
先照每個人水上樂園遊玩時間順序排序小到大
相同的話排探索樂園的時間
第一份是每次枚舉人在枚舉車子
WA (line:3)
我的答案 1 正確答案 2
bool dfs(int x,int n){
if (x==m)
return true;
for (int i=0;i<m;i++)
if (!use[i]){
use[i]=true;
for (int j=0;j<n;j++)
if (p[i].t+30>car[j]){
int tmp=car[j];
car[j]=max(tmp,p[i].t)+p[i].T;
if (dfs(x+1,n))
return true;
car[j]=tmp;
}
use[i]=false;
}
return false;
}
第二份直接照人的順序搜尋,枚舉車子
AC (4ms, 436KB)
bool dfs(int x,int n){
if (x==m)
return true;
for (int j=0;j<n;j++)
if (p[x].t+30>car[j]){
int tmp=car[j];
car[j]=max(tmp,p[x].t)+p[x].T;
if (dfs(x+1,n))
return true;
car[j]=tmp;
}
return false;
}
想想一筆測資
2
5 60
10 5
是1吧?但是第二份跑出來卻是2