关于计数的调试和corner

学术版

Anemones @ 2026-11-14 07:08:05

感觉计数经常要处理(包含但不限于):

这种 corner 应该怎么写预处理、快速幂之类的才能尽可能规避

以及,期望、概率这种除了静态调试还有啥比较好用的调试方法。然后就是我计数只会 tmp1,tmp2,tmp3 cnt1 cnt2 cnt3 这样导致更难调,但我也不知道咋命名更好调,学习AI命名法感觉打起来又慢(


by StarForger @ 2026-11-14 07:16:45

@Anemones

  1. 在这个函数中第一行就写一个特判,不符合直接跳(这个貌似不麻烦)
  2. 如果你英语不好,那就用拼音,否则用英文的缩写(例如tot总共,cur当前等……)

抓到一只紫名dalao


by Rain_chr @ 2026-11-14 07:33:14

@Anemones

感觉计数题,就是很难调。

概率期望这种乘方案数之后还是能调,但是如果这个题是各种拆贡献,容斥系数一大堆,那你如果不是一次写对的话又该怎么调呢?

这种小码量拆贡献的也就算了,真写错了对着 1~2 k 的代码瞪眼也能瞪出来,但是还有 3k,4k,5k 的计数,那又该怎么调呢?

如果小码量计数题,写之前想清楚,实在写错了可以考虑先瞪眼,一般错误都比较明显(如果式子是对的);大码量计数题,我的做法和写 DS 一样,也许可以每个地方先写暴力,确认答案是对的之后再去优化,这样会舒服很多。


by wbw_121124 @ 2026-11-14 07:37:49

@Anemones

我好像也只会 tmp1,tmp2,... cnt1,cnt2,... tot1,tot2,... 喵

命名用拼音/英文?


by Anemones @ 2026-11-14 07:41:05

@Rain_chr thx @StarForger@wbw_121124 但是 tmp cnt tot虽然看着多样了,但是你表意上并没有减小调试难度吧(


by zhangjiaheng @ 2026-11-14 07:47:57

@Anemones 我感觉是不是可以先写暴力 然后一块一块的改 这样还可以根据暴力判断自己有没有写挂。。


by kevinZ99 @ 2026-11-14 07:50:12

$\binom{n}{m}=0$ 的情况,你尽量再式子里面就直接按照 $n \ge m$ 推?当然我做的计数也比较少,不太知道有什么处理方式。 可以多写函数,或者 lambda

by Jerry3336 @ 2026-11-14 07:52:03

大佬论坛%%%


|