2025.2.18-20 闲话(技巧#4):结构体和重载运算符的妙用;代码清晰化的好方法;“钦定”和“恰好”、反演
如我这篇题解所说,P9361 [ICPC 2022 Xi'an R] Contests y有着大量的重复操作:合并排名信息。这个时候就可以尝试将这些操作封装在一个结构体中,并重载运算符以便其更加方便地合并。
曾经我用空行来分割不同功能的代码块,但是它看的不是很清晰。
后来我发现了 namespace
,但是它很丑,会导致所有函数都多一个缩进,否则会显得很混乱;而且用 namespace
会让代码里充斥着各式各样的 ::
,更丑了。
最后我发现了一种原始而简单的分割方式:
/*------------------------------*/
因为 Dev-C++ 的代码高亮功能,注释块十分显眼。若是在上下再插入两个空行就再好不过了。
“钦定 X”:对于 X 的每一个子情况都假设成立,计算此时的答案,最后把所有的答案加起来,可以重复算。
“恰好 X”:X 满足时的答案,不能重复计算。
恰好满足 \(n\) 个条件 \(=\) 钦定满足 \(1\) 个条件的 \(-\) 钦定满足 \(2\) 个条件的 \(+\) 钦定满足 \(3\) 个条件的……
反演大概就是说能够用函数 \(f\) 推出 \(g\),那么用 \(g\) 反推 \(f\) 就是反演。
本文采用 「CC-BY-NC 4.0」 创作共享协议,转载请注明作者及出处,禁止商业使用。
作者:Jerrycyx,原文链接:https://www.cnblogs.com/jerrycyx/p/18755592
分类:
闲话
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步