摘要:
[bzoj][1] [luogu][2] sol 某一枚导弹被拦截的概率等于这一枚导弹被拦截的方案数,也就是这枚导弹参与构成最长不上升子序列的方案数,除以最长不上升子序列的总方案数。总方案数会爆long long,但是可以用double存(雾) 从前往后做一遍最长不上升子序列,再从后往前做一遍最长不 阅读全文
摘要:
[bzoj][1] [luogu][2] sol cls的题目,写起来挺容易但思维的确是挺神的。 求中位数可以先二分中位数,然后把所有大于等于这个数的全部设为1,把所有小于这个数队全部设为 1,然后查一下区间总和是否大于等于0即可判断是否合法。 但是显然不能对于每次询问这么搞一下,所以事先建立n棵主 阅读全文
摘要:
[bzoj][1] [luogu][2] sol 树状数组套线段数题解。 对每个位置记一个$last_i$,表示与这个位置颜色相同的前一个位置。若这个位置上的颜色是第一次出现则$last_i=0$。 那么查询的时候就查询所有$L\le i\le R$中$last_i include include 阅读全文
摘要:
[cjoj][1] sol 子树转化成dfs序上的区间。 所以就变成了:区间Kth,区间内[a,b]范围内的数有多少个,单点修改 裸的树套树啊。 code cpp include include using namespace std; int gi() { int x=0,w=1;char ch= 阅读全文
摘要:
[vjudge][1] sol 字典序最小可以通过倒着$dp$解决。对每个$i$记录它可以转移到的$dp$值最大且字典序最小的$nxt_i$。 尝试着写一下$dp$式子。 $$dp_i=max\{dp_j\}+1(j i,L_j\le L_i,R_j\ge R_i)$$ 同时要保证$j$最小。 对$ 阅读全文
摘要:
[bzoj][1] [luogu][2] sol 每次至多只有一个位置发生变化啊 考虑设第$i$个数是$a_i$,其可以被修改成的值最小是$L_i$,最大是$R_i$。初始默认$L_i=R_i=a_i$。 考虑如果有两个位置$i,j$要相邻(假设$j$在$i$的前面),那就必须满足$a_j\le L 阅读全文