一直是90pts,大数据没过去,觉得是精度问题,但直接 define int long long 出现了
奇怪的现象.最后只将 f[] 改为 long long, 但还是90pts.
看了一篇40pts的代码,突然发现有个地方可以写得简洁一些
if (head == tail) f[i] = -INF;
else f[i] = f[q[head]] + s[i];
改为了
if (head < tail) f[i] = f[q[head]] + s[i];
于是就过了?!
由于memset初始化过,所以这里是不用赋值的.按理来说写了也不会错,
但想起来 memset是根据数据类型填充,所以如果是long long,其值为0x3f3f3f3f3f3f3f3f
我这里只赋成了0x3f3f3f3f,所以就没了.
到最后居然真的是精度问题QAQ
by Skeleton_Huo @ 2022-07-18 20:18:11