写了半天老是报 段错误
VS没报错,洛谷也AC了,请问怎么个事o.0?
VS没报错,洛谷也AC了,请问怎么个事o.0?
struct plane
{
int arrive;
int dead;
int land;
}pl [11];
int n, flag;
bitset<11> bs;
void bfs(int time, int index)
{
if (index == n)
{
flag = 1;
return ;
}
for (int i = 0;i<n;i++)
{
if (bs[i])
continue;
//失败条件:当前飞机的到达加盘旋时间超出了当前时间
if (time > pl[i].arrive + pl[i].dead)
{
return ;
}
//记录当前时间
int tmp = time;
time = max(time, pl[i].arrive) + pl[i].land;
bs[i] = 1;
bfs(time, index + 1);
bs[i] = 0;
//失败回溯时间
time = tmp;
}
}
int main()
{
int T;
cin >> T;
while (T--)
{
bs.reset();
flag = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
scanf("%d %d %d", &pl[i].arrive, &pl[i].dead, &pl[i].land);
}
bfs(0, 0);
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
0 回复
0 转发
0 喜欢
16 阅读



