- 无向边数组要开2倍!
- 乘法取模要开long long!
- Max初值应为-INF,Min初值应为INF!
- 数学函数,递推式等数学表达式要注意特殊情况,如:x=0,求log(x) a=1,求ba−1
- 非void函数无返回值(开-Wall就好)
大于 mod 的数一定要先取模再乘,比如 n≥mod,a<mod
错误: a * n % mod
正确:n % mod * a % mod各种变量一定要赋初值
- 应该没人会像我这样写分数类吧。。。。
struct Frac
{
int x, y;
Frac(int x = 0, int y = 1): x(x), y(y) {
int d = gcd(x, y);
x /= d, y /= d;
}
};
这份代码的BUG很多。。。下面给一份正常版。。。
struct Frac
{
int x, y;
Frac(int xx = 0, int yy = 1): x(xx), y(yy) {
if(x) {
int d = gcd(x, y);
x /= d, y /= d;
} else y = 1;
}
};
函数变量与结构体变量重名时默认是函数的。。。
本文分享了编程中的一些实用技巧及常见陷阱,包括无向边数组的处理、取模运算注意事项、数学函数使用时的特殊情况考虑、非void函数无返回值问题、变量赋初值的重要性以及分数类的实现方式。

2759

被折叠的 条评论
为什么被折叠?



