- 无向边数组要开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;
}
};
函数变量与结构体变量重名时默认是函数的。。。