上一页 1 ··· 14 15 16 17 18
摘要: 分治 首先感谢lrj的透彻讲解。 开始的时候我们可以用map来求出一个数的上一次出现的位置和下一次出现的位置,然后能判断一个数在$l$到$r$中这个数是否只出现了一次。 既然任意连续子序列都至少有一个元素唯一,那么我们可以找到这个序列中一个唯一存在的数,我们姑且认为ta的下标是k,进而我们发现任何包 阅读全文
posted @ 2019-09-10 18:04 wljss 阅读(183) 评论(0) 推荐(1) 编辑
摘要: 贪心 对于每一项的交换,设交换前内存为a,交换后内存为b,那么就有a b或$a \le b$。 我们分开处理,将a b的分为一类,a \le≤ b分为另一类,显然,我们将第一类按照a从小到大排序更优,这样我们就可以用较少的空间换取更大的空间。 将第二类按b从大到小排序,这样我们能花费较少的空间来换取 阅读全文
posted @ 2019-09-10 12:01 wljss 阅读(123) 评论(0) 推荐(1) 编辑
摘要: 矩阵加速递推 n的范围比较小,k的范围很大,我们可以考虑从n入手。 1.首先我们知道任何矩阵 单位矩阵都不会改变. 所以对于交换操作,我们可以造出一个这样的矩阵: 除了第s、m行,其他每一行都是f[i][i]=1; 第s行:f[s][m]=1;第m行:f[m][s]=1; 这样我们就完成了交换操作。 阅读全文
posted @ 2019-09-10 11:56 wljss 阅读(187) 评论(0) 推荐(1) 编辑
摘要: 数位DP|记忆化搜索 ~~听隔壁巨佬说DP和记搜可以互相转换~~ 显然这个题是可以用记忆化搜索过的,那我们应传哪几个参数? 首先就是记搜最基本的位置标记。 然后就是枚举的数字各位之和,以及取模之后的余数(判断能否整除某个数)。 最后就是判边界的参数。 当我们搜到最后一位时如果余数为0,并且各位之和= 阅读全文
posted @ 2019-09-10 11:44 wljss 阅读(156) 评论(0) 推荐(1) 编辑
摘要: 状压bfs 一共有16个位置,最多会有 $2^{16}=65536$ 种情况,用数组完全开的下。 用二进制中的1表示该位置有玩具,0表示该位置没有玩具。 由于广搜最先搜到的是最优解,直接用数组记录是否到达过该状态,顺便记录ans. 移动前的状态ans为0. 然后大力讨论12种情况即可 时间复杂度O( 阅读全文
posted @ 2019-09-07 19:43 wljss 阅读(123) 评论(0) 推荐(1) 编辑
上一页 1 ··· 14 15 16 17 18