AGC001 D-F
AGC001D
题意:给你一个数列 ,你需要构造一个数列 ,使得同时满足这两个条件的数列只能所有元素相等:
1、前 个数回文,接着 个数回文,再接着 个数回文……
2、前 个数回文,接着 个数回文,再接着 个数回文……
无解输出 Impossible
。
题解:
1、对于开头的一段,有下面两种情况(红色表示数列 的限制,绿色表示数列 的限制,后同):
2、对于中间的一段,有下面一种情况:
3、对于最后的一段,与开头的情况对称,懒得画了。
根据图很容易发现,只有开头和结尾的 可能为奇数,奇数超过两个就无解,在以内就丢首尾就行了。
根据图就是开头比 多 ,结尾比 少 ,中间一样的,注意特判 长度为 和 的最后一位为 。
AGC001E
题意:求
题解:考虑 是从 走到 且每一步只能往上或往右走一个单位长度的方案数。
显然这题就是让我们求所有从 走到 的方案数,显然我们可以考虑平移,因为平移这个矩形以后大小不变,所以答案也不变。
那我们可以平移成求所有从 走到 的方案数的和,但是如果直接算复杂度是和暴力没有区别的,所以我们考虑设 为所有的 走到 的方案数的和,因为答案要求从 开始,所以要减去所有的 ,然后将答案除以 即可。
AGC001F
题意:给一个 ~ 的排列 和一个数 ,两个数 、 可以交换当且仅当 且 ,求交换后字典序最小的排列。
题解:考虑 的逆置换 ,然后发现对于 的两个位置 、,这两个位置上的值不可能被交换,也就是他们的相对位置是固定的。
还原到 ,也就是对于 ,两个位置的大小关系是不变的,从小到大建个DAG,然后就是求给这个DAG编号后,最小的拓扑排序的序列。
我们建反图,跑拓扑,然后按照 ~ 标号,显然不可能真的建图,复杂度爆炸,我们考虑线段树(树状数组也行)维护这个图,发现用线段树存进所有 以后, 的值等于 之间的最大值时,度数为 ,用一个堆装这些度数为 的点,删掉以后就设为 ,一直这样直到每个点都被删掉就做完了。
__EOF__

本文链接:https://www.cnblogs.com/vegtable-foraino/p/16204177.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App