关于枚举顺序对效率的影响
  • 板块学术版
  • 楼主zt17
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/7/23 20:25
  • 上次更新2025/7/24 10:11:48
查看原帖
关于枚举顺序对效率的影响
677553
zt17楼主2025/7/23 20:25

我在完成 此题 时出现了超时,使用众多卡常方式无果(记录

同机房大神告诉我尝试交换枚举顺序 具体如下: 将

#define f(i,l,r) for(int i=(l);i<=(r);i++)
...
f(a,0,1)f(b,0,2)f(c,0,3)f(d,0,4)f(e,0,5)f(f,0,6)f(g,0,7)
f(a1,0,1)f(b1,0,1)f(c1,0,1)f(d1,0,1)f(e1,0,1)f(f1,0,1)f(g1,0,1)

...

改为

#define f(i,l,r) for(int i=(l);i<=(r);i++)
...
f(a1,0,1)f(b1,0,1)f(c1,0,1)f(d1,0,1)f(e1,0,1)f(f1,0,1)f(g1,0,1)
f(a,0,1)f(b,0,2)f(c,0,3)f(d,0,4)f(e,0,5)f(f,0,6)f(g,0,7)
...

实测本地效率快了一倍。

洛谷上 (#99) 780ms -> 413ms ,确实近乎快了一倍。(记录

我认为这个现象对于优化时间常数很有用,想要深入了解,求各位进行讲解!

2025/7/23 20:25
加载中...