大佬的bitset用法小结 https://www.cnblogs.com/zwfymqz/p/8696631.html

BZOJ3687简单题

题意:求子集的算术和的异或和,子集大小为n(n<=1000),所有数和sum<=2000000

  • 求子集和可以用01背包的那个动规,f[i]表示有多少个子集和为i 。时间复杂度O(n*sum)
  • 但是只求异或和就只表示奇偶性,所以bit[i]表示和为i的子集个数的奇偶性。
  • 时间复杂度降为O(n*sum/机器字长)
  • 代码:
     #include <bits/stdc++.h>
    #define nmax 10010
    #define f(a,b) for(int i=a; i<=b; i++) using namespace std;
    typedef long long ll; int main(){
    bitset<> bit;
    bit[] = ;
    int n, x;
    int ans = ;
    cin >> n;
    f(, n) {
    scanf("%d", &x);
    bit ^= (bit << x);
    }
    f(,) if(bit[i]) ans^=i;
    cout << ans << endl;
    return ;
    }

    (╹ڡ╹ )

HDU5036Explosion

  • 求期望:先求出有多少个点能够到达点i :cnt[i],期望就等于$\sum_{i=1}^n cnt[i]$
  • 这样求是因为:考虑使用在第i个门上的炸弹数量期望,要把第i个门弄开,可以有cnt[i]中爆炸选择,所以直接炸i的概率就是 1/cnt[i] ,根据期望的线性性质,所有门求和即得总的炸弹数量
  • 但是这样还是不是很清楚为啥就是期望,因为可能每个门的出现不是均匀的,,,有木有路过的大佬能说一下呀~
  • 所以用bitset优化floyd求传统闭包
  • 代码:
     #include <bits/stdc++.h>
    #define nmax 1010
    #define f(c, a, b) for (int c=a; c<=b; c++) using namespace std;
    int n;
    bitset <nmax> d[nmax]; void floyd(){ f(k, , n) f(i, , n) if(d[i][k]) d[i]|=d[k]; } void init(){ f(i,,n) { d[i].reset(); d[i][i]=; } } int main(){
    int t;
    cin >> t;
    f(cas, , t) {
    scanf("%d", &n);
    init();
    int ys, v;
    double ans=;
    f(i, , n) {
    scanf("%d", &ys);
    f(j, , ys) {
    scanf("%d", &v);
    d[v][i] = ;
    }
    }
    floyd();
    f(i,,n) ans += 1.0/d[i].count();
    printf("Case #%d: %.5lf\n", cas, ans);
    }
    return ;
    }

    bitset刷题记录的更多相关文章

    1. $2019$ 暑期刷题记录1:(算法竞赛DP练习)

      $ 2019 $ 暑期刷题记录: $ POJ~1952~~BUY~LOW, BUY~LOWER: $ (复杂度优化) 题目大意:统计可重序列中最长上升子序列的方案数. 题目很直接的说明了所求为 $ L ...

    2. PE刷题记录

      PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

    3. leetcode刷题记录--js

      leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

    4. Leetcode刷题记录(python3)

      Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

    5. 刷题记录:[HarekazeCTF2019]encode_and_encode

      目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

    6. 刷题记录:[De1CTF 2019]Giftbox && Comment

      目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

    7. 刷题记录:[强网杯 2019]Upload

      目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

    8. 刷题记录:[XNUCA2019Qualifier]EasyPHP

      目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

    9. 刷题记录:[DDCTF 2019]homebrew event loop

      目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

    随机推荐

    1. 创建一个圆类Circle的对象,分别设置圆的半径计算并分别显示圆半径、圆面积、圆周长。

      编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型): // 存放圆的半径: ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) ...

    2. VS2017/19 在更新之后,.net core项目出一个500的神奇错误

      先说症状: VS 更新升级之后,如果用的是 .net core 的项目的时候,当vs升级时,.net core的sdk或者runtime有跟着升级的话,项目发布之后,覆盖dll到服务器时,会出现这个错 ...

    3. 《 Java 编程思想》CH08 多态

      在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征. 多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来. "封装"通过合并特征和行为来创建新的数据类 ...

    4. windows、linux 下启用mysql日志功能

      在默认情况下,mysql安装是没有启用日志管理功能的,这为后续的维护带来很多不便的地方. 查看是否启用了日志mysql>show variables like 'log_bin'; 怎样知道当前 ...

    5. 如何开始阅读ASP.NET Core源代码

      背景 当我们对ASP.Net Core内部的某些方法.类的实现感兴趣时,有很多方法可以去了解,看书,看各种文章,但是最直接也是最深入的办法就是去阅读源代码.ASP.NET Core的源代码托管在Git ...

    6. MongoDB 复本集搭建

      复制集的特点   数据一致性 主是唯一的,但不是固定的  没有MySQL那样的双主结构 大多数原则,集群存活节点小于等于二分之一时集群不可写,只可读. 是否能选举出新的主节点,是由当前复制集成员存活量 ...

    7. Linux的那些事-系统启动(增加开机启动项)

      1   /etc/init.d 2   /etc/inittab 3   /etc/rc.d/init.d  1.   /etc/init.d 是一般开机的启动服务存放在这个目录下,至于实现机制,其实 ...

    8. 【转载】wav文件格式分析与详解

      WAV文件是在PC机平台上很常见的.最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形文件,可直接存储声音波形, ...

    9. Pandas常用功能

      在使用Pandas之前,需要导入pandas库 import pandas  as pd #pd作为pandas的别名 常用功能如下: 代码 功能1 .DataFrame()   创建一个DataFr ...

    10. Idea操作ElasticSearch

      前提: 1.ES服务成功启动 2.node.js成功启动 一.创建索引库 1.目录展示 2.导入依赖 <dependency> <groupId>org.elasticsear ...