摘要: 定义一条路径的权值为路径上所有边的编号直接相连所得到的十进制数字大小。 求1到每个点最短路mod \(10^9+7\) 做法: 每一条边可以按数位拆成若干个点。 bfs的时候,前面距离完全相同的点需要合并。 这种涉及字典序的题,都可以这样做。 细节非常多: #include<bits/stdc++. 阅读全文
posted @ 2021-11-08 20:07 zlc0405 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 给出一个数组$a$,若子串$a[l,r]\(满足\)[1,r-l+1]$各出现一次,则称其为这个数组的一个子排列。 求这个数组的子排列个数。 做法: 观察到一个子区间$[l,r]$是一个排列,等价于: $[l,r]$没有重复的数字。 $[l,r]$中的最大值为$r-l+1$。 用单调栈处理出每个数作 阅读全文
posted @ 2021-11-08 16:23 zlc0405 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 给出节点数为$n$,边数为$m$的图。 保证每个点对都是互连的。 定义彩虹路:这条路经过$k$个节点,对于$x(x%2=0)$的节点,左右两条边颜色相同。 现在有$q$次操作。 第一种操作是添加一条边。 第二种操作是回答是否能经过彩虹边从$a$节点到达$b$节点。 做法: 能相互到达的点用并查集连起 阅读全文
posted @ 2021-11-08 15:22 zlc0405 阅读(46) 评论(0) 推荐(0) 编辑