浅析OI中的对称性思想

starseven

2020-04-07 19:54:07

Personal

这篇文章大概会更很长的时间,如果有事长时间不更的话,也就算了。 ------- ## 引子 对称性的思想在各个领域中都很常见,但是又是非常重要的一个基本思想。本篇博文旨 在帮助大家见识更多的对称性思想的运用,但是对于**为什么要用对称性**,**在哪里用对称性的问题**,因为笔者阅历太浅没法一一总结。 但是如古语所说:“书读百遍,其义自见。”我相信以大家的实力,在看到这些题的时候一定会有所触动。 ## 关于对称性 对称性是一个可以用于 1.优化算法 2.抵消不同情况 3.避免分类讨论 4.减少代码难度 5.其他未知功能(~~对于笔者而言~~) 的一个强大的基础思想,现在我们一一来看。 ---------- ## 例题 1.[luogu4340](https://www.luogu.com.cn/problem/P4340) 题意自己点进去看。 很显然,对于一个具有加号或者减号的序列,比如说 $$ S1=a+b+c*d $$ 那么一定有一个对应的序列是 $$ S2=a-b-c*d $$ 这样就可以看出,对于这个排列组合的对称性,我们显然不需要进行暴力枚举,就算只考虑对称性也可以优化一半的时间复杂度,之后再推推公式就可以解出。 由于这里重点将对称性,公式就等大家自己想或者看题解吧! 2.[XJOJ(学军)]()