摘要:
分治 首先感谢lrj的透彻讲解。 开始的时候我们可以用map来求出一个数的上一次出现的位置和下一次出现的位置,然后能判断一个数在$l$到$r$中这个数是否只出现了一次。 既然任意连续子序列都至少有一个元素唯一,那么我们可以找到这个序列中一个唯一存在的数,我们姑且认为ta的下标是k,进而我们发现任何包 阅读全文
摘要:
贪心 对于每一项的交换,设交换前内存为a,交换后内存为b,那么就有a b或$a \le b$。 我们分开处理,将a b的分为一类,a \le≤ b分为另一类,显然,我们将第一类按照a从小到大排序更优,这样我们就可以用较少的空间换取更大的空间。 将第二类按b从大到小排序,这样我们能花费较少的空间来换取 阅读全文
摘要:
矩阵加速递推 n的范围比较小,k的范围很大,我们可以考虑从n入手。 1.首先我们知道任何矩阵 单位矩阵都不会改变. 所以对于交换操作,我们可以造出一个这样的矩阵: 除了第s、m行,其他每一行都是f[i][i]=1; 第s行:f[s][m]=1;第m行:f[m][s]=1; 这样我们就完成了交换操作。 阅读全文
摘要:
数位DP|记忆化搜索 ~~听隔壁巨佬说DP和记搜可以互相转换~~ 显然这个题是可以用记忆化搜索过的,那我们应传哪几个参数? 首先就是记搜最基本的位置标记。 然后就是枚举的数字各位之和,以及取模之后的余数(判断能否整除某个数)。 最后就是判边界的参数。 当我们搜到最后一位时如果余数为0,并且各位之和= 阅读全文