关于排列的问题小结
作者:互联网
CF-GR20题解
一场全是排列问题的CF
ICPC21SH B
关于排列的容斥计数题
CF-R803div2E-2300
先考虑如何判断一个确定的排列置换是否合法:
1.对于排列置换的环,考虑每次交换的影响,发现就是把一个点去掉;那么对于每一个数,只要判断它在环上的后面的第一个比它大的数即可。
2.进一步可以发现,只需要环上判断相邻两个数的关系,即考虑每条有向边。
那么按照出点从小到大考虑,合法的入点具有单调性,即前面的选择不会对后面的方案数产生影响,可以直接算出每一步的方案数。
CF-R793div2E-2700
考虑一个合法的操作,必然是交换两个原本在同一个置换环的数;于是考虑这个交换的影响,发现是把这个置换环分为了两个。
所以我们要做的就是安排这些顺序,使其不会出现交换的两个数在两个置换环的情况。
那么我们理应考虑什么时候会出现上述情况,通过模样例和画图会发现:
1.如果两个交换在一个环上,且这两个交换是相交的(且不只在端点处相交),那么不论以什么顺序操作,都不合法;
2.对于与同一个点有关的多个交换,必须按照环的顺时针方向顺序操作;
3.对于完全不相交的两个操作,它们之间没有影响。
由于题目保证有解,所以根据2的限制对操作连有向边,求任意一个拓扑序即可。
(发现在赛后慢慢想这种题,根据性质推导结论的过程还是很美妙的,然而时间有限的情况下确实很难搞)
标签:排列,环上,置换,交换,CF,关于,考虑,小结 来源: https://www.cnblogs.com/szsz/p/16463969.html