ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

常见小错误 FREQUENTLY MADE MISTAKES IN OI

常见小错误 FREQUENTLY MADE MISTAKES IN OI
  1. 乘法(连乘每次都要取模),减法忘记取模
a = ((a - b) % M + M) % M; // 减法
a = 1ll * a * b % M; // 乘法
c = 1ll * a * b % M * c % M * ... * z % M; // 连乘
  1. 多测忘记清空
  2. 使用STL或用数组模拟队列,栈等数据结构时忘记判空
  3. 数位dp记忆化搜索版本,记忆化数组\(f\)是不考虑\(\text{high}\)\(\text{lead}\)的结果
ll dfs(int u, ..., bool high, bool lead)
{if (u < 1) {...return ...;}if (!high && !lead && f[u][cons][val] != -1) return f[u][cons][val]; // 注意是!high && !lead...if (!high && !lead) f[u][cons][val] = ret;return ret;
}
  1. 数组开小,注意算好数组大小
  2. 注意运算优先级(尤其位运算)
类别 运算符 结合顺序
后缀 () [] -> . ++ - - 从左到右
一元 + - ! ~ ++ - - (type)* & sizeof 从右到左
乘除 * / % 从左到右
加减 + - 从左到右
移位 << >> 从左到右
关系 < <= > >= 从左到右
相等 == != 从左到右
位与 AND & 从左到右
位异或 XOR ^ 从左到右
位或 OR | 从左到右
逻辑与 AND && 从左到右
逻辑或 OR || 从左到右
条件 ?: 从右到左
赋值 = += -= *= /= %=>>= <<= &= ^= |= 从右到左
逗号 , 从左到右

摘自菜鸟教程

返回列表