BZOJ 4770: 图样(恶心概率期望DP)

news/2024/10/22 18:36:51/

题目
在这里插入图片描述

考试时推到 p p p就嫌麻烦,不想推了。。。
讲真写好DP预处理调一年。
时间复杂度 O ( n 4 m 2 m ) O(n^4m2^m) O(n4m2m)的代码
T E ( b u t c o r r e t ) C o d e \mathrm {TE (but \ corret)\ Code} TE(but corret) Code

//#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define maxn 55
#define maxm 9
#define mod 258280327
#define rep(i,j,k) for(int i=(j),LIM=(k);i<=LIM;i++)
using namespace std;int n,m;
int P[maxm+1][1<<maxm][maxn][maxn],G[maxn][maxn][maxm+1],F[maxn][maxm+1],C[maxn][maxn][maxn][maxn];
int fac[maxn]={1,1},inv[maxn]={1,1},invf[maxn]={1,1},pw[maxn*maxm]={1,2};
int& upd(int &x){ return x+=x>>31&mod; }
int Pow(int b,int k){ int r=1;for(;k;k>>=1,b=1ll*b*b%mod) if(k&1) r=1ll*r*b%mod; return r; }
int Co(int a,int b){ return fac[a] * 1ll * invf[b] % mod * invf[a-b] % mod; }int main(){scanf("%d%d",&n,&m);int t1 = clock();rep(i,2,n) fac[i]=1ll*fac[i-1]*i%mod,inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod,invf[i]=1ll*invf[i-1]*inv[i]%mod;rep(i,0,n) rep(j,0,i) rep(u,0,n) rep(v,0,u) C[i][j][u][v] = Co(i,j) * 1ll * Co(u,v) % mod;rep(i,2,maxn*maxm-1)pw[i]=pw[i-1]*2ll%mod;rep(i,0,n) rep(j,0,n) P[0][0][i][j] = 1;int (*T)[maxn],(*R)[maxn],(*PT)[maxn];rep(i,1,m) rep(j,0,(1<<i-1)-1){T=P[i][j],R=P[i][j+(1<<i-1)],PT=P[i-1][j];rep(a,0,n) T[a][0] = T[0][a] = R[a][0] = R[0][a] = pw[a * i];rep(a,1,n) rep(b,1,n-a) { upd(R[a][b] = (2 * PT[a][b] - mod));rep(u,0,a) rep(v,0,b) T[a][b] = (T[a][b] + PT[u][v]* 1ll * PT[a-u][b-v] % mod * C[a][u][b][v]) % mod;G[a][b][i] = (G[a][b][i] + R[a][b] + (j ? T[a][b] : 0)) % mod;}}rep(j,1,m) rep(i,1,n) rep(a,0,i) F[i][j] = (F[i][j] + 1ll * Co(i,a) * (F[a][j-1]*1ll*pw[(j-1)*(i-a)]%mod + F[i-a][j-1]*1ll*pw[(j-1)*a]%mod  + (a^i&&a^0?pw[i*(j-1)]*(1ll<<j-1)%mod + G[a][i-a][j-1]:0))) % mod;printf("%lld\n",1ll*F[n][m]*Pow(Pow(2,n*m),mod-2)%mod);
}

想过掉此题的可以写记忆化搜索。


http://www.ppmy.cn/news/147406.html

相关文章

bzoj 4770 图样 - 概率与期望 - 动态规划

题目传送门 传送门I 传送门II 题目大意 有一个$n$个点的完全图&#xff0c;每个点的权值是$[0, 2^{m})$中的随机整数&#xff0c;两点间的边的权值是两点点权的异或和&#xff0c;问它的最小异或生成树的边权和的期望。 考虑求最大异或生成树的分治做法&#xff0c;每次按最高位…

BZOJ4770 图样(概率期望+动态规划)

考虑求出所有MST的权值和再除以方案数&#xff0c;方案数显然是2mn。 按位考虑&#xff0c;显然应该让MST里的边高位尽量为0。那么根据最高位是0还是1将点集划分成两部分&#xff0c;整张图的MST就是由两部分各自的MST之间连一条最小边得到的。两部分的MST权值和可以dp得到&…

P4770-[NOI2018]你的名字【SAM,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P4770 题目大意 给出一个长度为 n n n的字符串 S S S。 q q q次询问给出一个串 T T T和一个区间 [ L , R ] [L,R] [L,R]&#xff0c;求 T T T有多少个本质不同的子串不是 S L ∼ R S_{L\sim R} SL∼R​的子串。 1 ≤ n ≤ 5 …

corei7 64 poky linux,Core i7-4770K Linux之旅:有喜有忧

Core i7-4770K Linux之旅&#xff1a;有喜有忧 出处&#xff1a;快科技 2013-06-09 11:37:15 作者&#xff1a;上方文Q 编辑&#xff1a;上方文Q[爆料] 收藏文章 Haswell的评测多如牛毛&#xff0c;但都是在Windows下进行的&#xff0c;Linux用户肯定看不下去了。Phoronix又…

酷睿i7cpu适合的linux,CPU性能篇 - Core i7-4770K Linux之旅:有喜有忧_Linux新闻_Linux公社-Linux系统门户网站...

CPU性能篇—— Rodinia是学术界经常使用的科学测试工具。OpenMP LavaMD负载中&#xff0c;4770K相比3770K快了12&#xff05;&#xff0c;8350表现也可以。 OpenMP Leukocyte负载里&#xff0c;4770K对比3770K的优势依然有10&#xff05;&#xff0c;但是8350大亮了&#xff0c…

HDU 4770

这道题利用DFS进行枚举就可以了。 由于图中的点很多&#xff0c;但是vulnerable room 很少&#xff0c;所以要把这些点保存起来。此外&#xff0c;由于回溯的时候判断哪些room任然被灯照射有些麻烦&#xff0c;所以用状态压缩的方式表示一个vulnerable room 被照射的状态&#…

BZOJ4770 图样

牛逼的DP&#xff0c;一股TC气息 求期望的话可以先求出所有情况的和再除以情况数 考虑 f[i][j] 表示 i 个点每个点的权值都是j位的二进制数&#xff0c;最小生成树的和 一定是最高位为0的和为1的分别的形成生成树&#xff0c;然后两部分之间连一条边 那么枚举 i 个点里有多…

群晖服务器性能测试,原创首发!群晖J3455 G4560 I7 4770HQ功耗性能测试!

本帖最后由 -我傻也要中二 于 2019-4-28 16:58 编辑 写在最前&#xff1a;本人也是新手入得群晖&#xff0c;一开始直接买的J3455&#xff0c;群晖的强大的功能&#xff0c;嘿嘿舒服。不过因为我本身是有一台windows服务器用来搭建ERP的&#xff0c;考虑到群晖可以运行虚拟机就…