[概率DP 哈希] POJ3156 .Interconnect

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南) 本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。 阅读详情

可以发现一个状态跟联通块的形态是无关的,只跟联通块的大小有关

每次可以加一条边,可能会使两个联通块联通,也可能什么都不会改变。

记忆化搜索一下

#include <cstdio>
#include <algorithm>
#include <iostream>
#include <map>
#define fi first
#define se second

using namespace std;

typedef unsigned long long ll;
typedef pair<ll,ll> PAR;

const int N=35;
const PAR P=PAR(33,37),MOD=PAR(1e9+7,1e9+9);

PAR operator +(const PAR &a,const int &b){ return PAR(a.fi+b,a.se+b); }
PAR operator +(const PAR &a,const PAR &b){ return PAR(a.fi+b.fi,a.se+b.se); }
PAR operator *(const PAR &a,const PAR &b){ return PAR(a.fi*b.fi,a.se*b.se); }
PAR operator %(const PAR &a,const PAR &b){ return PAR(a.fi%b.fi,a.se%b.se); }

int n,m,ans,tot,cnt,f[N];
int vis[N];
double C[N][N];

map<PAR,double> S;

struct STATUS{
  int size,a[N];
  PAR val;
  void fix(){
    sort(a+1,a+1+size);
    val=PAR(0,0);
    for(int i=1;i<=size;i++)
      val=(val*P+a[i])%MOD;
  }
};

int find(int x){
  return x==f[x]?x:f[x]=find(f[x]);
}

double dfs(STATUS x){
  if(S.count(x.val)) return S[x.val];
  if(x.size==1) return 0;
  double t=0,ret;
  for(int i=1;i<=x.size;i++)
    t+=C[x.a[i]][2];
  t=1.0/(1-t/C[n][2]); ret=t;
  for(int i=1;i<=x.size;i++)
    for(int j=i+1;j<=x.size;j++){
      STATUS cur=x;
      double ct=x.a[i]*x.a[j]/C[n][2];
      cur.a[i]+=cur.a[j]; cur.a[j]=cur.a[cur.size]; cur.size--;
      cur.fix();
      ret+=t*ct*dfs(cur);
    }
  return S[x.val]=ret;
}

int main(){
  scanf("%d%d",&n,&m);
  for(int i=1;i<=n;i++) f[i]=i;
  for(int i=1,x,y;i<=m;i++)
    scanf("%d%d",&x,&y),f[find(x)]=find(y);
  STATUS st;
  st.size=0;
  for(int i=1;i<=n;i++)
    if(!vis[find(i)]) st.a[++st.size]=1,vis[find(i)]=st.size;
    else st.a[vis[find(i)]]++;
  st.fix();
  C[1][0]=C[1][1]=1;
  for(int i=1;i<=n;i++) C[i][0]=1;
  for(int i=2;i<=n;i++)
    for(int j=1;j<=i;j++)
      C[i][j]=C[i-1][j-1]+C[i-1][j];
  printf("%.10lf\n",dfs(st));
  return 0;
}
详细分析 Bladex中的swagger-resources资源未授权访问的解决方法 有如下方式,网关过滤、去除配置以及修改代码还有隐藏彩蛋(附Demo),推荐阅读 阅读详情

相关推荐

如何制作微信小程序的在线购物商城应用

首先,你需要规划好商城的整体框架,确定好你的目标用户群体,思考他们的需求是什么。接下来,使用微信开发者工具创建一个新的小程序项目,输入你的AppID,选择好保存路径,点击“创建”,一个新的商城雏形就诞生了。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。数据是现代商业的灵魂,通过数据分析,你可以更准确地把握用户的行为模式,从而做出更明智的决策。

master_chenchen的博客 2427

POJ 3156 Interconnect(期望DP)

本题中图的具体形式是没有意义的,状态应该是联通块数量和大小,用数组记录这种状态。 比如(3,3,2)表示3个联通块,分别有3,3,2个点,它可以转移为(6,2)和(5,3)。很好理解转移到(6,2)的几率为3*3/(8×7/2),即:可改变状态的边和总边数之比,这样状态到状态间的概率就可求了。 期望DP要逆着推。设状态a可以到x,y,z,假设x,y,z到全联通的期望步数已求,为dp[x,y,z

Baoli1008的专栏 704

Lenovo 拯救者15ISK硬件升级实战:从内存到固态硬盘的全面优化

本文详细介绍了为联想拯救者15ISK笔记本电脑进行硬件升级的完整实战指南。通过评估升级可行性,指导如何挑选兼容的内存条与NVMe固态硬盘,并提供详细的拆机安装步骤与系统安装避坑技巧。升级后,笔记本的开机速度、软件加载及多任务处理能力获得飞跃式提升,让老旧设备重获新生。

weixin_29310631的博客 556

POJ 3156 Interconnect 并查集+期望dp

题意:有n个城市,m条边。现在每一年随机选两个不同的城市,然后建一条边。问多少年后所有城市连通?输出期望值。解:先用并查集处理出有多少个连通块。 状态的表示是每个连通块中点的数目。 如果某一年选的两个点属于同一连通块,就是转移到了自己。 否则就是转移到了另一个状态。移项解方程即可。 就是状态表示用了哈希表,略微复杂点。#include<cstdio> #include<string>

便纵有千种风情 502

从理论到板级:FOC电机驱动硬件电路全链路设计解析

本文从硬件工程师视角,深度解析FOC电机驱动从理论到板级实现的全链路设计。重点剖析了电源保护、核心采样电路、三相逆变桥与驱动电路等关键硬件模块的设计要点与实战经验,强调硬件是FOC算法可靠运行的基石,并提供了PCB布局布线的核心原则,帮助开发者构建高性能、高可靠性的电机驱动硬件平台。

weixin_29240711的博客 332

现控报告-- 分析倒立摆系统稳定性、能控性及能观性分析,设计PID控制方案(附matlab)

建立直线一级倒立摆系统的动力学模型,推导该系统的运动方程,求出直线一级倒立摆系统传递函数模型及空间状态方程模型。接着描述了PID控制系统设计原理及PID控制器各校正环节的作用,简要叙述了参数的整定方法。设计了直线一级倒立摆摆杆摆角及小车位置常规单回路控制器,通过Simulink仿真知道常规单回路控制器能控制摆杆摆角,不能控制小车位置。于是设计出了直线一级倒立摆双闭环控制器及基于倒立摆系统的状态空间方程控制器,利用软件进行仿真,仿真结果表明,常规双闭环控制方案和基于状态空间方程加控制方案均能对摆杆摆角及小车位

mengshenglo的博客 4万+

POJ 3156 Interconnect [期望DP]

  给出N个点M条边,每次等概率的给这张图加一条边,求连通这个图加边次数的期望。   这题我们并不关心图的形状,只要知道图的连通情况即可,即这张图有几个连通块,每个连通块中有几个顶点。比如,我们用E(2,3,3)表示当这个图有3个连通块,每个连通块中的顶点数分别是2,3,3时,我们把它连通所需加边的期望,对于8个顶点的图,E(8)=0。可以得到转移方程   E(2,3,3)=p1*E(2,3,...

weixin_34024034的博客 193

Unity游戏开发客户端Lua基础

Unity游戏开发客户端面经之 lua 篇

Sea3752的博客 1万+

POJ 3156 Interconnect 笔记

n个城镇,道路是双向的,以修好m条路,并给出每条路连接的城镇。每年随机修一条路,求多少年后所有城镇能连通。

woniupengpeng的专栏 306

多孔材料吸附性质模拟程序RASPA的离线和在线安装方法

RASPA-2.0是今年美国西北大学教授Randall Q. Snurr等人开发的针对于MC,MD,分子力学优化等用途的程序,相比于之前开发的MUSIC软件,RASPA的功能更加齐全,操作更加简便,可以在MC的吸附过程中考虑骨架的柔性,也可以想MUSIC一样先制作积分格点(music中的map)。 A、离线安装(centos为例): (1)、安装之前要检查一下是否装了automake,

youyno的博客 1万+

AD18软件——捕捉栅格、电气栅格、可见栅格的意义及设置

本文介绍了PCB设计中的三种栅格功能:可视栅格用于辅助定位(快捷键Shift+Ctrl+G),捕捉栅格控制光标移动间距(快捷键G),电气栅格实现元件自动吸附(快捷键Shift+E)。同时提供了在Altium Designer中快速查找相同网络标号的两种实用方法:Alt+鼠标单击或双击网络。这些功能可显著提高PCB设计效率和准确性。

qq_37999850的博客 645

poj 3156 用hash存状态的DP

NEERC2006的题,有点难度,好题。 题目大意:给一个有n个点,m条边的无向图,两点之间可以存在多条边。现在每次随机增加一条边,问使得全部点都连通需要增加多少次(期望值)。 求期望的题,由于期望的线性性,自然想到dp 首先是状态表示,f(s1,s2,s3,...sn)表示当前合并到了有n个连通分量,每个连通分量有s1,s2,s3,...sn个点,且s1 则有两种转移:一种是连边

AChunter的专栏 1267

huggingface下载提示huggingface_hub.errors.EntryNotFoundError:404 Client Error: (Request 1D: Root...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1232

Interconnect【POJ 3156】【哈希+期望dp详解】

题目链接   很好的一道题,真的捋清了什么是真正的期望,然后这道题有很多人拿的是位运算做的…… (或许我觉得unsigned long long比较的简单吧,但是由于它容易被hack,所以我打了双哈希)。   那么好的题,好多人都是一笔带过,但是这道题是真的有点东西的,我们知道题目中给到的,一共有N个点,并且有M条边已经是连好的,但是由于题目中说的那样,我们还有可能会链接到已经连上的边,所以,...

既然弱小,就只顾变强就是了 301

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【BZOJ1417】Pku3156 Interconnect 记忆化搜索

【BZOJ1417】Pku3156 Interconnect Description 给出无向图G(V, E). 每次操作任意加一条非自环的边(u, v), 每条边的选择是等概率的. 问使得G连通的期望操作次数. (|V| <= 30, |E| <= 1000) Input 第一行两个整数N,M 1<=N<=30 0<=M<=100...

aodanchui1057的博客 172

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

POJ 3156 Interconnect

Interconnect 昨天一天都在这个题上面个wa,晚上回来又重新打了一遍,然后就进400多毫秒过了这个题目。。。很是惊讶。然后仔细一看,原来是之前有地方写错了,这让我情何以堪。。。。发现自己打代码的能力越来越差,不能很快的将自己的思路用代码给表现出来。。。还要一直狂DEBUG(现在愈来愈认为DEBUG是一个非常不好的东西。。。)。。。 计算期望的时候:E(i) = pk* E(i

BootStar 796

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

POJ 3156 HASH 期望DP

/* DP方面是很好理解的,正常的期望DP用记忆化搜索处理关键是怎么表示连通块的状态首先连通快内部情况对题目解决无关重要,只需要连通快的点的个数就可以 于是我们先把每个连通快抽象成一个个具有权重的点 然后用字符串的最小表示法存储点序列 在此基础上使用HASH表示整个序列状态,主要用于记忆化搜索的时候判定是否出现过答案 如果状态出现过,则返回相应值 如果未出现过,在在原数组上再次进行DP注意

beihai2013 448

Interconnect - POJ 3156 期望+状压dp

Interconnect Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 1107   Accepted: 380   Special Judge Description There are two serious problems in the Kin

提比的强行AC 815

[概率DP][多项式取模] NOI2017.day1 T3 泳池

f(i,j)表示高度为i,长度为j的局域,i这个行存在障碍,前i-1行不存在障碍,能选取的区域&lt;=k的概率 那么fi,j=∑k&lt;jfi,k∗pi−1∗q∗gi,j−k−1+∑k&lt;jgi,k∗gi,j−k−1∗pi−1∗qfi,j=∑k&lt;jfi,k∗pi−1∗q∗gi,j−k−1+∑k&lt;jgi,k∗gi,j−k−1∗pi−1∗qf_{i,j}=\sum_{kgi,jg...

CE玩家 2664

[AtCoder AGC002 F][DP]Leftmost Ball

观察发现每个白球后面至少有一种颜色出现k-1次(就是只出现在这个白球后面),知道这个性质后可以从后往前DP把每次放一种颜色的球分成两次,一次放k-1个这种颜色的球,一次放1个白球,这样需要放2*n次fi,j,kf_{i,j,k}表示放了ii次,放了jj种颜色,当前可以放kk个白球,这样转移要n^3 可以省去i这一维。 放一个白球 fj,k→fj,k−1f_{j,k}\rightarrow f_{

CE玩家 1916

[LOJ#2290][THUWC 2017][概率][状压][DP][陈老师神题]随机二分图

又是一个冬令营未填的坑可以根据期望的直接定义,求出每个完美匹配出现的概率。 因为n很小,可以状压DP,fs,tf_{s,t}表示左边被匹配的状态为ss,右边被匹配的状态为tt时的概率,因为左右边被匹配的点个数是相同的,所以状态数大概为∑Cin2\sum {C^i_n}^2???但是肯定远远比这个小。然后直接做不太容易实现 可以把两条边的组拆分。 同时出现的组 可以拆成两条50%的边,以及25%

CE玩家 1736

[BZOJ4919][Lydsy六月份月赛 .C][树上DP][启发式合并]大根堆

用f[i][j]表示第i个节点,最大的为j且满足条件的大根堆的大小 现场写了一个很鬼畜的线段树合并DP数组……一直RE加上时间不够就弃疗了 不过好像是有类似的做法,先挖个坑…… 题解很妙啊,考虑链上的情况就是求LIS,求LIS可以用f[i]表示长度为i的子序列的最大是多少然后二分维护,那么放到树上同样可以做,用set维护。子树之间互不影响,直接启发式合并,父节点在子树合并得到的set中找到第...

CE玩家 1635

[树上依赖多重背包 DP] BZOJ 4910 [Sdoi2017]苹果树

题目 t−h≤kt-h\le k 的限制其实就是选一条到叶节点的链,然后再选k个的最大值(因为vi都大于零)。因为 ai>1ai>1 的点,肯定是先选了第一个才会选第二个 所以可以把 ai>1ai>1 的点拆成两个点 i′,i′′i',i'',ai′=1ai'=1,ai′′=ai−1ai''=ai-1,让 i′′i'' 变成 i′i' 的儿子。这个树上依赖背包可以通过两个遍历子树顺序相反的后序遍历

CE玩家 1519

[暴力DP][暴力STL]SNOI2017 && LOJ#2256. 英雄联盟

列出DP方程 fi,j=min{fi−1,jk+k×Ci,k|j且k≤Ki }f_{i,j}=min\{ f_{i-1,{j\over k}}+k\times C_i,k|j且k\leq K_i~\} fi,jf_{i,j}表示前ii个物品产生jj中方案时的最小价格jj很大,有101810^{18},但是jj只有2,3,5,7三种质数,所以jj能取到的值上限为(logm)4(\log m)^4,

CE玩家 1366

[DP 决策单调 分治]Codeforces 868F .Yet Another Minimization Problem

DP 令 fi,jf_{i,j} 表示前 ii 个数分成 jj 个区间的最小代价那么 fi,k=min{fj,k+cost(j+1,i)}f_{i,k}=\min\{f_{j,k}+cost(j+1,i)\} 这东西很想之前CF833B那种可以用线段树维护的套路但是因为 cost()=∑ai∗(ai−1)2cost()=\sum \frac{a_i*(a_i-1)}{2},这东西用线段树不好维护

CE玩家 1339

[AtCoder AGC005 D][容斥][DP] ~K Perm Counting

既然APIO讲到了,就补一发计数题题意是求有多少个n的排列,满足对于任意ii,|a[i]−i|≠k|a[i]-i|\neq k,kk是给定整数陈老师说的简单DP不会啊…只好求助Manchery另fif_i表示恰好有ii个xx满足|a[x]−x|=k|a[x]-x|=k,答案就是∑ni=0fi(n−i)!(−1)i\sum_{i=0}^n f_i(n-i)!(-1)^i——摘自官方题解 官方也没给出

CE玩家 1330
上一篇: [概率与期望 && DP] BZOJ3640 .JC的小苹果
下一篇: [阈值 二进制分组 && AC自动机]HDU4787. GRE Words Revenge
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值