警示后人2.0

P3355 骑士共存问题

reclusive @ 2023-08-03 16:12:15

如果你用的是vector存图,那你的遍历是顺着来的,建边应该先往右下角建。

int dx[8]={2,1,2,-1,1,-2,-1,-2};
int dy[8]={1,2,-1,2,-2,1,-2,-1};

如果你用的是链式前向星存图,那你的遍历是反着来的,建边应该先往左上角建。

int dx[8]={-1,-2,2,1,-1,-2,2,1};
int dy[8]={-2,-1,-1,-2,2,1,1,2};

by xzCyanBrad @ 2023-08-09 09:49:42

@reclusive

感谢!这样一下就优化了5倍,过了,请问这原理是什么?


by Caim_Astraea @ 2023-08-10 18:57:45

最后一个点直接从1.20sTLE,变成了100ms+AC,请问这是因为内存访问更加连续的原因么,有点猛 /kel


by Field_Mouse @ 2024-02-14 15:49:33

好猛的优化,直接过了,是什么神奇的内置硬件原因吗


by Liuboom @ 2024-06-26 16:43:44

@reclusive thanks


|