Light_az @ 2024-11-28 19:09:17
Rt ,网上找到的断断续续,没有全面介绍的,Cu
by xiezheyuan @ 2024-11-28 19:10:08
@Light_az
手写读入输出,尽量不使用内置函数(abs),注意常数,没了。
by Loser_Syx @ 2024-11-28 19:11:12
@Light_az abs(__int128)
by xiezheyuan @ 2024-11-28 19:12:29
@Loser_Syx 推荐如果真要写abs的话上一个宏:
#define abs(x) ((x) > 0 ? (x) : -(x))
by Moeebius @ 2024-11-28 19:17:30
不要放在数组访问的下标里。下面这份代码是 典型错误:
int a[1234];
int foo(__int128 x) { return a[x]; }
by xiezheyuan @ 2024-11-28 19:21:38
@Moeebius 刚刚测了一下,没问题啊qwq
xiezheyuan ➜ ~/xzy/2 $ g++ -o 1 1.cpp -O2 -std=c++14 -static
xiezheyuan ➜ ~/xzy/2 $ ./1
3
xiezheyuan ➜ ~/xzy/2 $ cat 1.cpp
#include <bits/stdc++.h>
using namespace std;
int a[1234];
int foo(__int128 x) { return a[x]; }
signed main(){
a[2] = 3;
cout << foo(2) << '\n';
}
by Light_az @ 2024-11-28 19:22:21
@xiezheyuan 下标确实会炸,去年有个比赛一堆人因为这个炸了
by xiezheyuan @ 2024-11-28 19:23:16
@Light_az 好吧,这玩意看起来听玄学的,那就最好别用吧,以免奇怪CE
by Moeebius @ 2024-11-28 19:27:12
@xiezheyuan 不是 CE,是有概率触发编译器 bug(不早于 gcc14 修复),所以别用。
挂了的示例
by xiezheyuan @ 2024-11-28 19:38:10
@Moeebius
刚刚在本地(Ubuntu 20.04,对标 NOI Linux 2.0)试了一下,如果不开 sanitize 会出浮点数例外 (核心已转储)
,但是开 sanitize 没问题,这都是什么鬼……
by CodingOIer @ 2024-11-28 19:40:33
@xiezheyuan可以使用 sudo apt install gcc-9
然后使用 g++-9
来获取相同地编译环境