[正睿集训2021] 模拟赛2
发布日期:2021-05-08 23:16:23 浏览次数:17 分类:博客文章

本文共 3469 字,大约阅读时间需要 11 分钟。

���������

���������

���������

������������

������������������������������������ \(T\)������������������������������������������������������������������������ \(G\)��������������������������������������������������������������������������� \(G\) ������������������������������ \(T\) ��������������������������������� \(G\) ��������������������� \(h[i]\)��������� \(G\) ��������������������������������� \(ls,rs\)������������������ \(T\) ������������������������������������

��������������������������� \(1e9+7\) ���������

\(n\leq 5000,h_i\leq 10^9\)

������

������������ \(G\)������������������ \(dp\)������ \(f[i][j]\) ��������� \(i\) ��������� \(T\) ��� \(j\) ������������������������������������������������������������������������������������������������

\[f(i,j)=(\sum_{k>j}f(l,k)2^{k-j-1})(\sum_{k>j}f(r,k)2^{k-j-1})\]

��� \(g(i,j)=\sum_{k\geq j}f(i,k)2^k\)������ \(dp\) ������������������ \(f(i,j)=g(l,j+1)g(r,j+1)2^{-2j-2}\)��������������������� \(O(nh_i)\) ������

������������������������������������������������ \(dp\) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������\(g(i,j)\) ��������������� \(a_0+a_12^{-j}+a_22^{-2j}....+a_k2^{-kj}\) ������������������ \(j\) ������������������������������������������������������������ \(a\) ������������ \(i\) ������������������������������������ \(g(i,j)\) ������ \(j\) ������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������ \(b\) ��� \(g(l)\) ��� \(g(r)\) ��������������������������������� \(g\) ������������������������������������ \(s_i\) ��� \(g(i,j)\) ��������������������������� \(t\) ���������������������������

\[\begin{align}g(i,j)&=\sum_{k=j}^{s_i}2^kf(i,k)\\&=\sum_{k=j}^{s_i}2^k\cdot2^{-2k-2}g(l,k+1)g(r,k+1)\\&=\sum_{k=j}^{s_i}2^{-k-2}\sum_{l=0}^{t}b_l2^{-l(k+1)}\\&=\frac{1}{2}\sum_{l=0}^{t}b_l\cdot2^{-l-1}\sum_{k=j}^{s_i}2^{-(l+1)k}\\&=\frac{1}{2}\sum_{l=0}^tb_l\cdot 2^{-l-1}\frac{2^{-(s_i+1)(l+1)}-2^{-j(l+1)}}{2^{-l-1}-1}\end{align}\]

������������������������ \(j\)������ \(j\) ��������������������������������������������������������������� \(2^{-j(l+1)}\)��������������������������������������� \(l+1\) ������������������������������������������������������������������������������������ \(b\) ������������������������������������ \(lca\) ������ \(1\) ������������������������������������������������ \(O(n^2)\)

#include 
#include
#include
using namespace std;const int M = 5005;const int MOD = 1e9+7;#define int long longint read(){ int x=0,f=1;char c; while((c=getchar())<'0' || c>'9') {if(c=='-') f=-1;} while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar();} return x*f;}int n,inv,ans,ls[M],rs[M],h[M],a[M][M],b[M],siz[M];int qkpow(int a,int b){ int r=1; while(b>0) { if(b&1) r=r*a%MOD; a=a*a%MOD; b>>=1; } return r;}void dfs(int u){ if(!ls[u]) { siz[u]=1; a[u][0]=qkpow(2,h[u]); return ; } dfs(ls[u]); dfs(rs[u]); h[u]=min(h[ls[u]],h[rs[u]])-1;//���j��������� if(h[u]<0) return ; siz[u]=siz[ls[u]]+siz[rs[u]]; memset(b,0,sizeof b); for(int i=0;i

������������

������������������������

上一篇:[正睿集训2021] 杂题选讲
下一篇:[正睿集训2021] 模拟赛3

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月20日 19时24分26秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章