HDU5036 Explosion(期望 bitset)
题意
Sol
和cf上的一道题几乎一摸一样
首先根据期望的线性性,可以转化为求每个点的期望打开次数,又因为每个点最多会被打开一次,只要算每个点被打开的概率就行了
设\(anc[i]\)表示\(i\)的反图中能到达的点集大小,答案等于\(\sum_{i = 1}^n \frac{1}{anc[i]}\)(也就是要保证是第一个被选的)
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1001;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
int N;
bitset<MAXN> f[MAXN], Empty;
double solve() {
    N = read();
    for(int i = 1; i <= N; i++) f[i] = Empty;
    for(int i = 1; i <= N; i++) {
        int k = read();  f[i].set(i);
        for(int j = 1; j <= k; j++) {
            int v = read(); f[v].set(i);
        }
    }
    for(int k = 1; k <= N; k++)
        for(int i = 1; i <= N; i++)
            if(f[i][k]) f[i] = f[i] | f[k];
    double ans = 0;
    for(int i = 1; i <= N; i++) ans += 1.0 / f[i].count();
    return ans;
}
int main() {
    int T = read();
    for(int i = 1; i <= T; i++) printf("Case #%d: %.5lf\n", i, solve());
    return 0;
}
HDU5036 Explosion(期望 bitset)的更多相关文章
- HDU5036 Explosion(期望&&bitset)
		#include <iostream> #include <cstring> #include <string> #include <vector> # ... 
- hdu 5036 Explosion(概率期望+bitset)
		Problem Description Everyone knows Matt enjoys playing games very much. Now, he to N. Input The firs ... 
- HDU 5036 Explosion (传递闭包+bitset优化)
		<题目链接> 题目大意: 一个人要打开或者用炸弹砸开所有的门,每个门后面有一些钥匙,一个钥匙对应一个门,告诉每个门里面有哪些门的钥匙.如果要打开所有的门,问需要用的炸弹数量为多少. 解题分 ... 
- hdu5036 Explosion 传递闭包
		大哲哥的讲课内容 根据期望的线性性,得到总期望为各个点被轰的概率(不会证,好像是这样吧) 传递闭包解决出每个点的祖先(能到达它的点)就能算概率了 bitset能贡献1/w的复杂度,而且导致Floyd只 ... 
- HDU5036(bitset加速传递闭包+期望)
		HDU5036 题解 题目链接 思路: 求出破坏or打开所有门所需要的期望炮弹数量,那么根据期望的线性性质,我们可以求出每一个门的期望值最后累加起来就行了. 我们最后的目标就是求对于一个门\(i\), ... 
- 概率期望+闭包+bitset优化——hdu5036
		我们首先得到: 暴力打开这个箱子,能够开那些箱子.这个可以用bitset来进行状态压缩. 用闭包传递来解决这一步 然后,对于每个箱子,我们考虑有多少种方法,使:暴力打开某些箱子,同时能 ... 
- Hdu 5036-Explosion  传递闭包,bitset,期望/概率
		题目:http://acm.hdu.edu.cn/showproblem.php?pid=5036 Explosion Time Limit: 6000/3000 MS (Java/Others) ... 
- hdu 5036 Explosion  bitset优化floyd
		http://acm.hdu.edu.cn/showproblem.php?pid=5036 题意就是给定一副有向图,现在需要走遍这n个顶点,一开始出发的顶点是这n个之中的随便一个. 如果走了1,那么 ... 
- NBUT 1635 Explosion(最小顶点覆盖)
		[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connec ... 
随机推荐
- TCP连接详解
			一. 连接过程示意图 二. 建立TCP连接 2.1 三次握手 第一次握手:建立连接.客户端发送连接请求报文段,将SYN置为1,Sequence Number为x:然后,客户端进入SYN_SEND状态, ... 
- git log 高级用法
			转自:https://github.com/geeeeeeeeek/git-recipes/wiki/5.3-Git-log%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95 内 ... 
- 03-02 Java键盘录入
			键盘录入基本格式: /* 为了让程序的数据更符合开发的数据,我们就加入了键盘录入. 让程序更灵活一下. 那么,我们如何实现键盘数据的录入呢? A:导包 格式: import java.util.Sca ... 
- 监督学习——AdaBoost元算法提高分类性能
			基于数据的多重抽样的分类器 可以将不通的分类器组合起来,这种组合结果被称为集成方法(ensemble method)或者元算法(meta-algorithom) bagging : 基于数据随机抽样的 ... 
- spring cloud开发、部署注意
			一.开发时,配置服务的配置使用本地路径,不使用svn和git,因为后者每个开发人员都会修改配置,导致别人也拿到其他人修改的配置,本地配置示例如下: spring: application: name: ... 
- SQL语句:Mac 下 处理myql 不能远程登录和本地登录问题
			mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES) ()里面的为she ... 
- Maven内置属性,pom属性
			内置属性(Maven预定义,用户可以直接使用) ${basedir}表示项目根目录,即包含pom.xml文件的目录; ${version}表示项目版本; ${project.basedir}同${ba ... 
- 全网最详细的hive-site.xml配置文件里添加<name>hive.cli.print.header</name>和<name>hive.cli.print.current.db</name>前后的变化(图文详解)
			不多说,直接上干货! 比如,你是从hive-default.xml.template,复制一份,改名为hive-site.xml 一般是 <configuration> <prope ... 
- 有意思的App
			掘金 javadoop 专业相机也羡慕奖 – Focos 说个睡前故事 so easy 奖 – 洪恩双语绘本 效率蹭蹭上升奖 – Sorted³ 时光隧道走一回奖 – NOMO 相机 设计师也爱用奖 ... 
- JavaScript -- Anchor
			-----052-Anchor.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=" ... 
