例题计划
一天看十个题解思路和十个优秀代码,自己挑题目。尽量挑选自己的分数段的。
注明:(思路)/(代码)
时间:晚自习回来之后。可以适量思考。
2022.11.11
CF546E
【题意】
给定 点 边无向图。第 个点有 个士兵,并且每个士兵可以选择留在原地或者前往与当前位置距离为 的点。求是否存在一个士兵迁移方式使得第 个点有 个兵。
【分析】
首先想到对每一条边设置元,跑高斯消元。但是有问题:这其中还包含了一些不等关系:每个点流出去的元的总和小于等于 。
考虑网络流。考虑 和每个点的入边连接一个流量为 的边,每个点的入边和它能到达的每一个点连接一个流量为 的边,每个点的出边和 连接一个流量为 的边。然后跑最大流,是否合法看总流量是否等于 。方案看残量网络中反边容量也就是正边已经流的量。
CF713B
【题意】
有个 的矩阵中有两个不相交的矩形。你可以进行不超过 次询问,每次询问划定一个矩形范围,然后系统会返回完全包含于这个矩形范围的矩形个数( 到 ),需要找出两个矩形在何处。
【分析】
先二分出两个矩形之间的边界,然后分别二分即可。每次独立的二分只需要 次,绰绰有余。
2022.11.12
ABC277F
【题意】
有个 的矩阵,每个元素是 或某个正整数。可以进行若干次操作,每次把矩阵中两行交换,或者两列交换。需要使得最后的矩阵忽略 之后,对于每个元素按照其标号字典序排序之后是一个不降序列。
【思想】
简化联通关系的建立。
【分析】
首先,转换操作。进行若干次操作之后,可以将行号排成任意排列,列号排成任意排列。例如:
可以将行号排成 ,列号排成 ,那么矩阵变成:
其次,分析怎样的矩阵满足条件。
- 行内元素在 sort 之后是不会变化的。那么如果找到每一行最小和最大的非 元素,然后排序,如果某一行的最小元素小于上一行的最大元素,那么就不可以。
- 每一行还要 sort。那么如果 ,在列排列中 必须满足。如果出现冲突,那么就不可以。考虑用图维护这样的信息:对于 ,连边 。那么只有当图为 DAG 时才是满足条件的。
这样,时间复杂度是 的。不能通过此题。考虑优化。
可以考虑到,如果 ,那么不需要建立 三条边,而是建立 即可。这样形成一条链,不管哪个后面的结点往前连边都是会出现环的。
但是有一个问题:如果出现一个块中有若干个相等的数,那么这些数均要和前后连边。注意到这个之后就好做了,这个就一个虚点,然后通过虚点建立联通关系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具