bitset用法和ch2101

こ雲淡風輕ζ 提交于 2019-12-15 21:38:07

我又回来啦

第一次尝试使用markdown文本,可能编辑不好,见谅咕咕咕

题目

(这个网站里有全部蓝书的题目,good)

咳咳下面步入正题,关于这种题目,看到的第一眼应该能想到相当于动规的递推,但是要求边界如果直接dfs,30000的数据不知道你家的栈能不能~受~的住
所以这个题目提供了一个很好的思路,就是先求出拓扑序然后反过来一个一个求,这样可以保证求当前节点数据时(小于等于30000不用longlong)所用到的节点都以经算好了,就这么简单

就这么简单??

你好好考虑过动归方程了吗?
f(x)={x}并(所有f(y)的并,存在有向边(x,y))
为甚不是加??
因为有可能会有重复。比如3->4,2->4那直接加起来,4就会算两次
怎么破??

主角闪亮登场!!

状压

用N位二进制数,反之一个点到其他点只有能与不能
1就是能呗,2就是不能呗
实现:

  1. 数组实现(不够装逼)
  2. bitset!

一直不知道bitset怎么用
今天先码几个呗(~嘤嘤嘤~)

1:定义

bitset名称
bitset名称[数组大小]

2:运算

假设有bit[30001]
可以直接赋值bit[1][1]=1;
就是第一个1位为1

可以直接bit[1]|bit[2] (全部按位或)

先到这里,走了,下次再补吧 19.12.15 20.14

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!