[Atcoder] arc91-E LISDL (构造)
题目链接:
题目大意:
让你构造一个长度为n的排列, 使得整个排列的最长上升子序列长度为A, 最长递降子序列为B。
解题思路:
首先我们要知道什么情况下是不合法的的。、
a + b > n+1
当只有一组递增和一组递降的时候, a+b == n+1a*b < n
最多的时候, 有a组递降序列, 每组序列长度为b。 最多构成a*b长度。
然后就是分组构造, 一共构造b组, 每组构造长度为min(a,n-(b-1))
的递增序列。 理解:要保持长度不能大于a, 并且剩余的个数要能够构造出b-1组递降。
最后 小心爆int
参考博客:feng_zhiyu
AC代码:
/*****