摘要: 今天学习了单调队列优化DP,其模型为: $$f_i=\min/\max_{L(i)\le j\le R(i)}\lbrace kf_j+val(i,j)\rbrace$$ 其中$L,R$是具有单调性的函数,$val(i,j)=h_1(i)+h_2(j)$,是分别关于$i,j$的函数之和。 其原理在于 阅读全文
posted @ 2023-01-11 20:59 spdarkle 阅读(70) 评论(0) 推荐(0) 编辑
摘要: Trie树简单应用 首先,Trie的思想很容易理解,一张图解释一切: 也即:字符集有多大,则开多少倍空间。 在实现上,我们用边来存储字符,然后开一个数组表示当前节点是否是一个字符串的结尾即可。 #include<bits/stdc++.h> using namespace std; #define 阅读全文
posted @ 2023-01-11 09:07 spdarkle 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 选数 题解 首先,设最初取值为$x$,按照套路,我们设异或前缀和:$pre_i=a_1\oplus a_2…\oplus a_i$,设$f(x)=\left(\left\lfloor\frac{2x}{2^n}\right\rfloor+2x\right)\bmod 2^n$ 注意到:$0\le a 阅读全文
posted @ 2023-01-11 08:07 spdarkle 阅读(14) 评论(0) 推荐(0) 编辑
摘要: Magic题解 题意简述: 给定$n$个数$a_1,a_2,…,a_n$,设对于数$x$,$|x|$表示其在十进制下的位数,也即$10^{|x|}\le x<10^{|x|+1}$ 需要计算: $$\sum_{i=1}^n\sum_{j=i+1}^na_i\oplus a_j$$ 数据范围: $n\ 阅读全文
posted @ 2023-01-11 08:06 spdarkle 阅读(18) 评论(0) 推荐(0) 编辑