P3343 [ZJOI2015]地震后的幻想乡
给积分大佬跪了
再给状压大佬也跪了
//minamoto
#include<bits/stdc++.h>
#define rint register int
#define ll long long
using namespace std;
#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[1<<21],*p1=buf,*p2=buf;
int read(){
int res,f=1;char ch;
while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
return res*f;
}
ll dp[2][65][2205],sz[2205];bool vis[2205];
int n,m,up,mp[25][25];ll c[60][60];double res;
int main(){
// freopen("testdata.in","r",stdin);
n=read(),m=read(),up=pow(2,n)-1;
for(rint i=1,u,v;i<=m;++i)u=read(),v=read(),mp[u-1][v-1]=mp[v-1][u-1]=1;
for(rint i=1;i<=up;++i)for(rint p1=1;p1<n;++p1)for(rint p2=0;p2<p1;++p2)sz[i]+=((i>>p1)&1)&&((i>>p2)&1)&&mp[p1][p2];
// for(rint i=0;i<=m+1;++i)c[i][0]=c[i][i]=1;
// for(rint i=1;i<=m+1;++i)for(rint j=1;j<i;++j)c[i][j]=c[i-1][j]+c[i-1][j-1];
for(rint i=0;i<=m+1;++i)c[0][i]=c[i][i]=1;
for(rint j=1;j<=m+1;++j)for(rint i=1;i<j;++i)c[i][j]=c[i][j-1]+c[i-1][j-1];
for(rint i=0;i<=up;++i)dp[0][0][i]=1;
for(rint i=0;i<n;++i)dp[1][0][1<<i]=1,dp[0][0][1<<i]=0;
for(rint i=1;i<=m;++i)for(rint j=1;j<=up;++j){
int p1=0;while(((j>>p1)&1)==0)++p1;
for(rint k=(j-1)&j;k;k=(k-1)&j){
if(((k>>p1)&1)==0)continue;
for(rint rk=0;rk<=i;++rk)
dp[0][i][j]+=dp[1][rk][k]*c[i-rk][sz[j^k]];
}
dp[1][i][j]=c[i][sz[j]]-dp[0][i][j];
}
for(rint i=0;i<=m;++i)res+=1.0*dp[0][i][up]/c[i][m];
printf("%.6lf\n",res/(m+1));return 0;
}
P3343 [ZJOI2015]地震后的幻想乡的更多相关文章
- [bzoj3925] [洛谷P3343] [ZJOI2015] 地震后的幻想乡
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- 洛谷P3343 [ZJOI2015]地震后的幻想乡 [DP,概率期望]
传送门 思路 题目给了一个提示:对于\(n\)个\([0,1]\)的随机变量,其中第\(k\)小的期望大小是\(\frac{k}{n+1}\). 这引导我们枚举边的相对大小的全排列,然后求最小生成树 ...
- 洛谷 P3343 - [ZJOI2015]地震后的幻想乡(朴素状压 DP/状压 DP+微积分)
题面传送门 鸽子 tzc 竟然来补题解了,奇迹奇迹( 神仙题 %%%%%%%%%%%% 解法 1: 首先一件很明显的事情是这个最小值可以通过类似 Kruskal 求最小生成树的方法求得.我们将所有边按 ...
- 【BZOJ3925】[ZJOI2015]地震后的幻想乡(动态规划)
[BZOJ3925][ZJOI2015]地震后的幻想乡(动态规划) 题面 BZOJ 洛谷 题解 题目里面有一句提示:对于\(n\)个\([0,1]\)之间的随机变量\(x1,x2,...,xn\),第 ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- [ZJOI2015]地震后的幻想乡(期望+dp)
题目描述 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任务是尽快让幻想 ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡【概率期望+状压DP】
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- 洛谷3343(ZJOI2015)地震后的幻想乡
题目:https://www.luogu.org/problemnew/show/P3343 1.那个时间与边的大小排名有关,所以需要求一下最大边的期望排名就行. 2.期望排名是这样算的:(排名为1的 ...
- BZOJ 3925 ZJOI2015 地震后的幻想乡
假设我们用了边权前i小的边使得图连通,那么对答案的贡献为i/m+1 又因为期望的线性性质,我们只需要求用了i条边就可以了 不妨设g(S)(i)表示用了i条边使得点集S连通的概率 设f(S)(i)表示用 ...
随机推荐
- 《 阿Q正传》-鲁迅 词语解释 | 经典语录
词语解释 “太上有立德,其次是立功,其次是立言,虽久不废,此之谓不朽”.-出自<左传>-左丘明(春秋末期) 解释:(1)最上等的是树立德行,其次是建功立业,再其次是创立学说,即使过了很久也 ...
- 7-16 一元多项式求导(20 分)(有关while(scanf("%d",&n)!=EOF))
7-16 一元多项式求导(20 分) 设计函数求一元多项式的导数. 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式: 以与输入相同 ...
- codevs1128 导弹拦截
题目描述 Description 经过11 年的韬光养晦,某国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截.当工作半径为0 时,则能够拦截与它位置恰好相同的导弹 ...
- redis持久化机制【十三】
一.Redis提供了哪些持久化机制: redis的高性能是因为其所有数据都存在了内存中 ,为了使redis在重启之后数据仍然不丢失,需要将数据同步到硬盘中,这一过程就是持久化. redis支持两种方式 ...
- P2212 [USACO14MAR]浇地Watering the Fields 洛谷
https://www.luogu.org/problem/show?pid=2212 题目描述 Due to a lack of rain, Farmer John wants to build a ...
- HDU——2063 过山车
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- SAS编程基础 - 菜鸟入门常用操作
1. SAS9.4添加和取消注释的快捷键? Ctrl+/:添加注释 Ctrl+Shift+/:取消注释 2. 如何强制终止程序运行? 看到那个圆圈里带叹号的图标了吗?没错,就是它 - 中断! 3. 如 ...
- 条款十六: 在operator=中对所有数据成员赋值
当涉及到继承时,派生类的赋值运算符也必须处理它的基类成员的赋值!否则,当派生类对象向另一个派生类对象赋值时,只有派生类部分赋值了.看看下面: class base { public: ): x(ini ...
- JAVA OO之 类、对象、包
类 类是具有相同属性和行为的一组对象的集合. public class HomeWork1 { public static void main(String[] args) { MyPhone mp= ...
- 工作总结 string数组 排序 string数组 比较
用到 工具类 Array 创建.处理.搜索数组并对数组进行排序 Enumerable 提供一组用于查询实现 System.Collections.Generic.IEnumerable<T ...