[JZOJ5837] Omeed】的更多相关文章

Description Solution 有两种做法 一种是线段树维护一次方程系数,一种是线段树维护矩阵 准备都写一写 维护系数 首先把式子推出来 \[CS=B\times \sum\limits_{i=1}^np_i\times(f_{i-1}+1)\] \[f_i=(t+p_i-p_i\times t)\times f_{i-1}+p_i\] 发现 \(f_i\) 是关于 \(f_{i-1}\) 的一次函数 \(y=kx+b\) 形式,可以线段树维护这个 \(k\) 和 \(b\). 还有…
先摆出来这个式子 \[ score=A\sum S_i+B\sum S_i\times f(i) \] 先研究\(f\)函数(也就是Combo函数) 显然的有 \[ f(i)=P_i(f(i-1)+1)+t(1-P_i)f(i-1) \] 化简得 \[ f(i)=(P_i+t-tP_i)f(i-1)+P_i \] 再考虑一下期望意义下的式子 \[ score=A\sum P_i+B\sum P_i\times f(i) \] 然而,这是不对的,第一个样例都过不了 问题出在哪?就在\(P_i\ti…
考场 T1 貌似是 luogu 上原题 T2 计数,想起了这题和这题,但没有 \(n^2\) 一档的分...准备打个表 T3 期望 DP,但暴力是 \(O(qn)\) 的,发现 \(combo\) 的形式像一次函数,应该要用 DS 维护. 7.30 开写,8.00 拍上 T1 T2 打表发现填的数是每个数最后一次出现位置的升序那就有 53pts,比较满意.然后一直在想怎么改上面那题的方程,弃的比较早 T3 一度推出的暴力 DP 的式子,写出来不对,调了调也没啥思路,只能拼部分分了.sub6 只要…
目录 题面 题解 代码 题面 2.12 - - - 题解 大概还是挺妙的? 首先基础分和连击分互不干扰,所以可以分开统计. 基础分的统计比较简单,等于: \[A \sum_{i = l}^{r} p_i\] 连击分的统计就比较复杂了,因为是求期望,根据期望的线性性,我们可以先算出\(f_i\)表示每个音符的期望连击分,再计算整个区间的期望连击分. 观察连击分的统计方法,可以知道,区间其实是互不干扰的,也就是说,每个区间中的期望连击分,其实都是在对进入这个区间时的期望连击分\(f_{l - 1}\…
传送门 差了一点没想到正解-- 首先单次询问的 \(O(n)\) 写法很好想,考虑如何优化 首先基础分区间求和即可 然后那个连击分的话,是一个关于 \(f_i\) 和 \(f_{i-1}\) 的柿子 \[f_i = p*(f_{i-1}+1)+(1-p)*f_{i-1}*t \] 移个项 \[f_i = (p+t-p*t)f_{i-1}+p \] 就表示成了一个 \(f_i = k_i*f_{i-1}+b_i\) 的形式 形似 \(f_i = k_i*f_{i-1}+b_i\) 的柿子可以用线段…
感觉自己放弃题目还是过于容易. 其实第一题不是很难,但是自己拿了一个暴力就走人了.. 然后其实简单优化一下子就有不少分数. 然后第二题的本质不同的子序列个数的方程没有推出来,如果推出来就会直接有 \(67pts\),但是自己只能用 \(2^n\) 暴力去计算. 第三题还是对期望有一些畏惧... 其实这个仔细想想方程并不难,然后这样就有很多分数,然后线段树确实不是很好写,但是基础 \(dp\) 也有很多.... prime 我们可以先筛出来 \(1\)~$ min(sqrt(r),k)$ 之间的素…
期望得分:55+24+53 实际得分:0+0+3 乐死 累加变量清零了吗? 打出更高的部分分暴力删了吗? 样例解释换行你看见了吗? T1 Prime 打出55分做法没删原来的暴力,结果就轻松挂55分 考场上想到根号的预处理,但是并未想到如何进行映射 正解是先预处理$[1,\sqrt R]$中的类素数,然后标记他们在$[L,R]$间的倍数 剩下的就是答案 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std…
T1 prime 发现只需筛小于等于$mid(\sqrt r,k)$的质数,之后用这些质数筛掉区间内不合法的数即可. $code:$ 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 5 namespace IO{ 6 inline int read(){ 7 int x=0,f=1; char ch=getchar(); 8 while(ch<'0'||ch>'9'){ if(ch…