
状态压缩 && 状压dp
笑对这个世界的志贵
这个作者很懒,什么都没留下…
展开
-
【状态压缩dp】HDU - 1074 Doing Homework
Problem Description 给你T组测试数据,每组测试数据给你一个N(1<=N<=15) 接下来有N行,每行分别代表需要做作业的科目,截止时间,完成需要花费的时间。如果不能在截止时间完成作业,那么考试分数就会被扣分,超出几天,就扣几分,让你求出最少的扣分。思路: 因为N比较小,所以可以枚举所有的情况,(1左移n) - 1代表n个1的二进制,我们用1来表示完成了该科目,0表示还没翻译 2017-08-12 19:37:29 · 225 阅读 · 0 评论 -
【状压dp && 位运算优化】Gym - 101246C Explode 'Em All
Step1 Problem 给出n*m的矩阵,你可以在任何一点放炸弹,炸弹可以炸十字,范围内的怪物全消灭。问你最少需要多少个炸弹可以把所有的怪物消灭 数据范围: 1<=n, m<=25Step2 Involving algorithms: 状压dp && 位运算优化Step3 Ideas: 枚举炸行的所有情况有 2^n-1...翻译 2018-04-18 22:08:03 · 329 阅读 · 0 评论 -
【BFS && 状态压缩】Gym - 101572D Distinctive Character
Step1 Problem: 给你n行,k位的 只包含’0’,’1’的字符串。 输出一个只包含’0’,’1’的字符串,和这些源串各个位不同个数最少的串要求各个位不同个数尽可能的多(多个解输出任意一个即可) 数据范围: 1<=n<=1e5, 1<=k<=20Step2 Involving algorithms: BFS &&am...翻译 2018-04-07 11:06:00 · 237 阅读 · 0 评论 -
【状态压缩 && 数学】ZOJ - 3280 Choose The Best
Step1 Problem: 给你n个,m维的点。 求最远的带权值的曼哈顿距离 数据范围: 2<=n<=50000, 1 <= m <= 8.Step2 Involving algorithms: 状态压缩 && 数学Step3 Ideas: K-D树应该可以做,但是我们要说的是另一种方法。 把权值...翻译 2018-04-07 10:53:06 · 176 阅读 · 0 评论 -
【状态压缩 && 记忆化搜索】URAL - 1152 False Mirrors
Step1 Problem: 回合制,有n个位置围成一个圈,每个位置上有一个怪(怪有力量值),每回合你可以毁灭掉连续三个位置的怪,回合结束你会受到伤害(剩下怪的力量值的和)。 求消灭所有怪 受到的最少伤害。 数据范围: 3<=N<=20.Step2 Involving algorithms: 状压DPStep3 Ideas: 因为N...翻译 2018-04-03 09:51:36 · 202 阅读 · 0 评论 -
【状态压缩 && 暴力】Gym - 101063B Martian Sunrise
Problem Description 给你一个曲谱由音符组成 曲谱长度是n(1 思路 看到至少,很快想到二分,但是不好判断当前演奏家个数,能否完成。所以换一种方法。 看到m很小,就想到状态压缩。状态压缩后发现暴力可行。 有两种暴力方法: 一:枚举曲谱,判断演奏家能否弹出,还得记录状态。 二:枚举演奏家,判断曲谱最多能弹到哪。(这个比较好理解,也比较好翻译 2018-02-03 08:53:51 · 304 阅读 · 0 评论 -
【博弈 && dfs && 状态压缩】HackerRank - permutation-game
Problem Description 给你n个数,有两个人玩游戏,分别是Alice, Bob。他们可以选择一个数并将其删除,如果序列是递增的那么将要操作的人输。Alice先手。 给你一个序列,让你输出必胜的一方的名字。 例如: 3 1 3 2 胜利的是Alice。因为他只要删除2 or 3序列就是递增的了。思路: 如果给的序列一开始就是递增的,翻译 2018-01-24 11:41:57 · 352 阅读 · 0 评论 -
【唯一分解定理 && 状态压缩 && 组合数学】LightOJ - 1236 Pairs Forming LCM
Problem Description long long pairsFormLCM( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) for( int j = i; j <= n; j++ ) if( lcm(i, j) == n ) res++;翻译 2017-10-16 19:37:10 · 357 阅读 · 0 评论 -
【矩阵快速幂 && 状压dp】hdu-6185 Covering
Problem Description 给你一个4×N的矩阵,你可以填1×2的矩阵或者2×1的矩阵,填满有多少种方案,需要取mod。思路 POJ - 3420 和这题可以说是一种题,但是代码使用在这题上面超时,很不能理解,后面学习了网上的做法,先找出递推关系,在矩阵快速幂,别人的速度能在1000ms以内,我的居然2000ms。有知道的大佬可以指出为什么。//ac代码#include<c翻译 2017-09-05 08:48:15 · 269 阅读 · 0 评论 -
【状压dp && 矩阵快速幂】 POJ - 3420 Quad Tiling
Problem Description 给你一个4×N的矩阵,你可以填1×2的矩阵 or 2×1的矩阵,问你填满有多少种方案,需要取mod。思路: poj 2411的基础上加了个矩阵快速幂#include<cstdio>#include<cstring>using namespace std;struct node{ long long a[16][16];};nod翻译 2017-09-05 08:40:09 · 248 阅读 · 0 评论 -
【状态压缩 && 思维转换】Codeforces Round #438 868C Qualification Rounds
Problem Description 输入n, k代表有n个问题,k个队伍。接下来输入一个n*k的矩阵,如果为1代表第j个队伍知道第i个题如何做,0代表不知道如何做。你想要找到一个关于这n道题的非空子集,每个参加队伍知道的题目不超过总数的一半。问是否能找到这么个子集。 思路: 如果存在一道题全部队伍都不知道,那么yes,否则就得找两道题,如果为yes,最坏情况就是每个队伍都知道一道题。如翻译 2017-10-06 17:01:03 · 232 阅读 · 0 评论 -
【状态压缩dp 入门】POJ - 2411 Mondriaan's Dream
Problem Description 给你一个h,w的矩阵,你可以使用1*2或者2*1的矩阵将其填满,问你有多少种情况。参考博客:http://blog.youkuaiyun.com/shiwei408/article/details/8821853 pre,now的二进制代表一行怎么放。核心就是枚举出所有的pre->now的情况,然后用path[]数组存起来,然后跑h行,这一行为now这种二进制,翻译 2017-09-02 17:38:55 · 230 阅读 · 0 评论 -
【状态压缩&&bfs】HDU - 5094
Step1 Problem: 有一个你n*m的地图,里面有p种类型的门。 p == 0的时候,该门是打不开的。 p != 0的时候,该门需要p这把钥匙打开。 告诉你哪些点移动到哪些点,有门。 告诉你哪些点有钥匙。 问你从(1, 1) 走到 (n, n) 最少需要走多少步(一个点 可以 走上下左右四个方向)。 例: 输入: 4 4 9 9...翻译 2018-05-02 11:32:42 · 296 阅读 · 1 评论