专栏文章

Notes「兄弟你的笑话好像不怎么好笑」

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mimzjgja
此快照首次捕获于
2025/12/01 18:07
3 个月前
此快照最后确认于
2025/12/01 18:07
3 个月前
查看原文
  • 变量一定要读入,答案一定要输出。
  • 图论题在读入一条边之后一定要调用 add(有些人习惯的可能是 addedge)把它加到图里去。
  • 定义了一个 dfs 函数之后,一定要调用它。
前三个可能会让你绷不住,但是这都是真事。有些人就为此虚空调试了一会。
  • 千万不要在 dfs2 中调用 dfs1
  • 优化一串代码时,照着原来的代码改动,千万不要漏一句话。
  • 做 hash 题时,千万不要什么 hash 都直接使用,正确率太低的会炸飞。
  • 模数为 109+710^9+7 时,千万不要定义为 998244353998\,244\,353
  • 这是一份可爱的快读代码。 CPP
    template <typename _Tp>
    void read (_Tp& x) {
      x = 0;
      char ch = getchar ();
      while (!isdigit (ch)) {
        ch = getchar ();
      }
      while (isdigit (ch)) {
        x = (x << 3) + (x << 1) + (ch ^ 48);
        ch = getchar ();
      }
    }
    
    • 第 2 行千万不要漏掉 &
    • 第 9 行千万不要写成 x = (x << 3) | (x << 1) | (ch ^ 48);
    • 如果输入有负数,千万不要直接使用她。
  • 如果你的代码小数据全过,大数据全挂,千万不要忘了检查数组大小。
  • 读入 nnai,bia_i,b_i 千万不要写成先读入 nnaia_i,再读入 nnbib_i
  • x1opx2x_1\mathbin{\mathrm{op}}x_2 千万不要写成 x1opy1x_1\mathbin{\mathrm{op}}y_1,其中 op\mathrm{op} 为二元运算符,x,yx,y 改成 a,ba,b 也同理。
  • 这是一份可爱的 LCA 代码(部分)。 CPP
    if (dep[x] < dep[y]) {
    	swap (x, y);
    }
    for (int p = __lg (n); p >= 0; p--) {
    	if (dep[fat[p][x]] >= dep[y]) {
    		x = fat[p][x];
    	}
    }
    int l = x;
    if (x != y) {
    	for (int p = __lg (n); p >= 0; p--) {
    		if (fat[p][x] != fat[p][y]) {
    			x = fat[p][x], y = fat[p][y];
    		}
    	}
    	l = fat[0][x];
    }
    
    • 第 5 行不等号方向千万不要反。
    • 第 12 行的条件判断千万不要写成 dep[fat[p][x]] != dep[fat[p][y]]
    • 第 4 行和第 11 行的两个 p >= 0 千万不要写成 p >= 1
    • 一定要保证根的 dep 不为 00 才能使用她。
  • 线段树空间千万不要写成 N << 1
  • 设线段树当前节点区间为 [L,R][L,R],修改 / 询问区间为 l,rl,r,则判断终止条件为 l <= L && R <= r,千万不要写成 L <= l && r <= R

评论

0 条评论,欢迎与作者交流。

正在加载评论...