浅析OI中的对称性思想
starseven
2020-04-07 19:54:07
这篇文章大概会更很长的时间,如果有事长时间不更的话,也就算了。
-------
## 引子
对称性的思想在各个领域中都很常见,但是又是非常重要的一个基本思想。本篇博文旨
在帮助大家见识更多的对称性思想的运用,但是对于**为什么要用对称性**,**在哪里用对称性的问题**,因为笔者阅历太浅没法一一总结。
但是如古语所说:“书读百遍,其义自见。”我相信以大家的实力,在看到这些题的时候一定会有所触动。
## 关于对称性
对称性是一个可以用于
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(学军)]()