关于排列的问题小结

CF-GR20题解

一场全是排列问题的CF

ICPC21SH B

关于排列的容斥计数题

CF-R803div2E-2300

先考虑如何判断一个确定的排列置换是否合法:
1.对于排列置换的环,考虑每次交换的影响,发现就是把一个点去掉;那么对于每一个数,只要判断它在环上的后面的第一个比它大的数即可。
2.进一步可以发现,只需要环上判断相邻两个数的关系,即考虑每条有向边。

那么按照出点从小到大考虑,合法的入点具有单调性,即前面的选择不会对后面的方案数产生影响,可以直接算出每一步的方案数。

CF-R793div2E-2700

考虑一个合法的操作,必然是交换两个原本在同一个置换环的数;于是考虑这个交换的影响,发现是把这个置换环分为了两个。
所以我们要做的就是安排这些顺序,使其不会出现交换的两个数在两个置换环的情况。
那么我们理应考虑什么时候会出现上述情况,通过模样例和画图会发现:
1.如果两个交换在一个环上,且这两个交换是相交的(且不只在端点处相交),那么不论以什么顺序操作,都不合法;
2.对于与同一个点有关的多个交换,必须按照环的顺时针方向顺序操作;
3.对于完全不相交的两个操作,它们之间没有影响。
由于题目保证有解,所以根据2的限制对操作连有向边,求任意一个拓扑序即可。
(发现在赛后慢慢想这种题,根据性质推导结论的过程还是很美妙的,然而时间有限的情况下确实很难搞)

posted @ 2022-07-11 18:57  sz[sz]  阅读(40)  评论(0)    收藏  举报