状态压缩
文章平均质量分 84
·马克图布·
如果人生真的可以分为几个阶段的话,那么我现在就在感觉自己很普通,并一无是处的那个阶段。
展开
-
牛客小白月赛23 A(子集生成 + 子集前缀和)
A思路:因为行的范围比较小,列的范围比较大,所以可以2n2^n2n枚举行的选择方式,然后在判断是否可行。复杂度O(2n⋅m)O(2^n\cdot m)O(2n⋅m)数据太水了char w[50][N];int x[N],y[N];int _x[N],_y[N];int main(){ int t = read(); while(t--){ int n...原创 2020-03-26 18:14:15 · 205 阅读 · 0 评论 -
AtCoder E - Dividing Chocolate
现在才发现比赛时读错题意了。。。以为要连通的1的个数不能超过kkk呢。题意:给你一个矩形,然后0位黑格,1位白格,现在你可以横切或者纵切这个矩形,使得每块的白块的个数<=k。思路:遇见过不少这种题了。由于某一个坐标轴的范围很小,而另一个很大,所以可以二进制枚举范围小的坐标轴的情况。然后遍历列判断就行了。由于写的时候没带脑子,各种bug,调了很久。复杂度O(2n⋅n⋅m)O(2^...原创 2020-03-26 16:27:43 · 295 阅读 · 0 评论 -
Codeforces Round #286 (Div. 2)B(状态压缩 + 传递闭包)
链接题意:有一个图,每两个点之间有不同颜色的路径,一个点可以沿着一条颜色路径到另一个点,就说明这两个点之间存在某一公共颜色。现在有qqq个查询,问uuu和vvv两点之间有几条颜路径。如下图1 2之间有两条,1 3之间有一条, 3 4之间有一条。思路:由题意可知,只有两个点之间有相同颜色的路径,才能走过去。我们可以先想一下,若只有一种颜色可以使用,那就变为了两点之间是否可达的问题,直接...原创 2020-03-12 10:40:56 · 124 阅读 · 0 评论 -
Atcoder C - HonestOrUnkind2(位运算技巧:二进制枚举)
#include <bits/stdc++.h>using namespace std;int N;int A[20];int x[20][20];int y[20][20];int counter(int x) { if(x == 0) return 0; return counter(x >> 1) + (x & 1);}v...原创 2019-12-09 22:53:44 · 558 阅读 · 0 评论 -
异或的路径(路径异或前缀 + 按位贡献)
链接题目描述题目描述题目描述给一棵 n 个点的树,1 号节点为根,边有边权,令 f(u,v) 表示 u 节点到 v 节点,路径上边权异或值。求 ∑i=1n∑i=1nf(i,j)\sum_{i=1}^n\sum_{i=1}^nf(i,j)∑i=1n∑i=1nf(i,j), 结果对 1000000007 取模。输入描述:第一行一个整数 n(n≤100000)n(n≤100000)n(n≤...原创 2019-12-09 20:07:28 · 571 阅读 · 0 评论 -
STL bitset
转自 -------Dalao构造const int M = 2e6 + 1005;int main(){ string a = "110011101010"; // bitset<5> s(a);//从左边选取5位赋给s bitset<20> s(a,5) ;//从a中自左到右舍弃5位 cout<<s<<...转载 2019-11-28 15:31:20 · 178 阅读 · 0 评论 -
hihoCoder 1513 : 小Hi的烦恼(bitset解决五维数点)
题意大致是 每个人都有5科成绩,然后给出给个人5科成绩的排名,然后让你求对于每个人而言 全面碾压自己的人有多少?思路:枚举的话 肯定会超时的,题解说这是一个5维数点问题。然后这个题目用bitset解决,复杂度变为。这个题目的代码非常简短,用bitset实现起来非常妙。先开一个数组stu[i] [j] 代表第 i 科排名第j的人是谁,然后再用位运算进行关系的传递!最后只需5科相与统计一 的个数即...原创 2019-09-29 08:37:42 · 243 阅读 · 0 评论 -
poj2570 Fiber Network(floyed传递闭包 + 二进制压缩)
题意: 有一个有向图,对于有向图的每条边上有一个公司名字的集合,代表该集合内的公司能提供该边的连通服务.现在我们给你q个查询.对于每个查询a和b,你要回答有哪些公司能提供从a到b的通路服务.。思路:题意就是给你一个起点a,终点b。然后让你输出a->b路上的公共字符。这算是一种集合关系,相同线路取交集,不同线路取并集,显然用二进制存储更加方便,26个字符对应...原创 2019-08-27 20:20:58 · 222 阅读 · 0 评论 -
164. 可达性统计 (拓扑排序 + 状态压缩)
给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式输出共N行,表示每个点能够到达的点的数量。数据范围1≤N,M≤300001≤N,M≤30000输入样例:10 103 82 32 55 95 92 33 94 82 104 9...原创 2019-08-10 15:19:38 · 225 阅读 · 0 评论 -
hdu2209 翻纸牌游戏(枚举+状态压缩 | 双向广搜)
Problem Description有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌。但是麻烦的是,每当你翻一张纸牌(由正翻到反,或者有反翻到正)时,他左右两张纸牌(最左边和最右边的纸牌,只会影响附近一张)也必须跟着翻动,现在给你一个乱的状态,问你能否把他们整理好,使得每张纸牌都正面朝上,如果可以,最...原创 2019-07-20 20:18:07 · 200 阅读 · 0 评论 -
Flip Game(BFS+状态压缩 | 枚举+状态压缩)
DescriptionFlip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 squares. One side of each piece is white and the other one is black and each piece is lyin...原创 2019-05-17 20:48:00 · 475 阅读 · 0 评论 -
poj3279 Fliptile(枚举+状态压缩 | DFS)
DescriptionFarmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 1...原创 2019-07-18 11:11:14 · 240 阅读 · 0 评论 -
熄灯问题(枚举+状态压缩)
描述有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。在上图中,左边矩阵中用X标记的按钮表示被按下,右边的矩阵表示灯状态的改...原创 2019-07-14 15:51:04 · 465 阅读 · 6 评论