2 条题解
-
2
⑨的前后缀排列
云剪贴板:https://www.luogu.com.cn/paste/0ge84jzm
这题在正常情况下,不管怎样都可以产生2个不同的排列;不正常情况下,产生不了任何排列。
所以我们只需要判断“不正常情况”就可以AC了。
所谓“不正常情况”,指的是所给条件自相矛盾的时候,
那什么时候所给条件会自相矛盾呢?
公共前缀,指的是两个排列开头相同的部分;公共后缀,指的是两个排列结尾相同的部分,
也就是说如果公共前缀长度为A,那么从1到A的位置一定相同,A+1的位置两个数一定不同,
若A+1的位置也被列在公共后缀的范围内,也就是说这个位置既一定不同也一定相同,这就自相矛盾了,排列就产生不出来了。
因此,我们要判断A+1的位置是否被列在公共后缀的范围内。
转换得简单点就是A+B+1>=N时会自相矛盾,但是有一种特殊情况:当A=N且B=N时不会自相矛盾。
所以只要判断A+B+1是否>=N,再特判A=N且B=N的情况就行了。
- 1
信息
- ID
- 287
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 56
- 已通过
- 16
- 上传者