09 2019 档案
摘要:"LOJ" ~~好简单的题。~~ 对美味度排序,然后价格为下标建立主席树,查询时二分就行了 代码:
阅读全文
摘要:"codeforces" 一般的套路显然转化按位确定 第一行直接算有多少字典序比他小就行了。 对于$2$到$n$行,每行的总方案数就是错排数量。 这就存在一个问题,我们无法确定当前行能放的有多少字典序比它小。 我们发现对于第$i$行第$j$个,假如第$i 1$行前$j$个数和第$i$行前$j$个数一
阅读全文
摘要:"atcoder" ~~一道小清新dp题~~ 我们设$f[i][j]$表示当前放了$i$个白球和$j$种其他颜色的球$(j include include include using namespace std; define rg register void read(int &x){ char
阅读全文
摘要:"codeforces" 由于每个数组可以滑动。 我们对于一个位置,要考虑它是否可以为空,能放的最大值是多少。 每行的每个位置都直接这样做显然会TLE。 我们发现每行可以分为三个部分(有些时候不可以,随便讨论一下啦) 第一个部分是只能放前几个。 第二个部分是所有的都可以放。 第三个部分是只能放后几个
阅读全文
摘要:"codeforces" 显然发现可以从右往左依次确定。 考虑求出前缀和,每次查询当前位置上的值,然后删掉当前数,动态维护一下前缀和就好了 对于查询值可以树状数组+二分$O(n\log^2n)$,也可以线段树$O(n\log n)$ ~~貌似树状数组+二分比线段树跑的要快~~ 代码: c++ inc
阅读全文
摘要:"codeforces" 发现矩阵 $$ \begin{align } &0\ 1\ 2\ 3\\ &4\ 5\ 6\ 7\\ &8\ 9\ 10\ 11\\ &12\ 13\ 14\ 15\\ \end{align } $$ 每行和每列的$\rm xor$和为0,发现每个位置加上$16x$也不会改
阅读全文
摘要:"codeforces" 我们设$f[i]$表示有多少个数的二进制下的子集值为$i$ 显然当$f[i] =2$时,$i$是可以通过$a_j\&a_k$得到的 然后我们枚举$a_i$,从高位到低位考虑,尽量多取$a_i$二进制下没有的位。 然后取最大值就行了,至于满足$i include includ
阅读全文
摘要:"codeforces" 考虑算出$nxt_i$表示以$i$为左端点,不出现重复的数最远可以到的位置 然后枚举左端点$l$,枚举右端点$r$,如果当前区间内的最大值$mx r l+1$,我们就将右端点移到$mx+l 1$的位置上。 由于答案是$O(n)$的,所以总复杂度就是$O(n\log n)$
阅读全文
摘要:"codeforces" 线段树优化建图的裸题 代码:
阅读全文