acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 资讯
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 题解

    代码:

    userId_undefined
    隔壁老杨
    7月全勤卷王空间掌握者数组·数组操作员题解仙人快乐小狗俄罗斯套娃大师
    18阅读
    1回复
    4点赞
  • 题解

    #include<bits/stdc++.h> const int N = 10 ; const int M = 45 + 1 ; bool vis[1 << N][M]; int siz[1 << N], link[N]; double f[1 << N][M]; int main() { int n, m; scanf("%d%d" , &n, &m); int lim = 1 << n; for (int i = 0 , x, y; i < m; ++i) { scanf("%d%d" , &x, &y); --x; --y; link[x] |= ( 1 << y); link[y] |= ( 1 << x); } for (int S = 1; S < lim; ++S) siz[S] = siz[S & (S - 1)] + 1 ; for (int S1 = 3; S1 < lim; ++S1) if (S1 & 1 ) { for (int S2 = (S1 - 1) & S1; S2 != 0; S2 = (S2 - 1) & S1) if (S2 & 1 ) { int T = 0 ; for (int i = 0; i < n; ++i) if ((S1 >> i) & (~S2 >> i) & 1 ) T += siz[link[i] & S2]; for (int i = 0 ; i + T <= m; ++i) f[S1][i] += 1.0 / (i + T + 1 ) - f[S2][i + T]; } } printf("%.6lf\n", f[lim - 1][0 ]); return 0 ;}

    userId_undefined
    刘博文
    时间刺客字符串·魔法使倔强青铜模拟·模拟练习生枚举·枚举小能手
    0阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页