一个关于语法的小问题
  • 板块学术版
  • 楼主White_Bear_
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/11/29 10:54
  • 上次更新2024/11/29 15:15:16
查看原帖
一个关于语法的小问题
1280896
White_Bear_楼主2024/11/29 10:54

大家都知道,在让某个变量加一时,使用 ++i 之类的语句,可以让该变量先加一,在进入后续的赋值操作。

于是,笔者在做某道 01-trie 练习题时,在 new_node 函数中采用了如下写法:

trie[++tot][0] = trie[tot][1] = 0;

该写法下,笔者的代码通过了所有的大样例,但成功地获得了 8pts 的好成绩。

并且,将洛谷给出的错误数据输入本地的 exe 文件,得出的答案是正确的。

于是,笔者经过了许多尝试,发现只要把这行代码修改为:

++tot, trie[tot][0] = trie[tot][1] = 0;

就可以获得 100pts 的好成绩。

问题在于,作者在洛谷提交时选择的是 c++14,关闭 02 优化,在本地编译时的编译选项也是 -std=c++14

作为 oi 萌新,笔者并不知道是什么问题导致了 100 -> 8,但肯定的是,如果笔者在 noip 考场上犯了同样的问题,那必然是要 afo 了。

所以蒟蒻非常希望有大佬能给出靠谱的解答,谢谢。

2024/11/29 10:54
加载中...