基础 —— 状态压缩
基础 —— 状态压缩
c4Lnn
这个作者很懒,什么都没留下…
展开
-
牛客练习赛 58 C. 矩阵消除游戏
链接 https://ac.nowcoder.com/acm/contest/4090/C 题意 有一个 n×mn \times mn×m 的矩阵,进行 kkk 次操作,每次可以选一行(列)使 resresres 加上这一行(列)的权值和并将这一行(列)的单源格的权值都变为 000,求 resresres 的最大值 思路 首先 k=min(k,min(n,m))k=\min(k,\min(n,m))k=min(k,min(n,m)),因为当 k=n∣∣k=mk=n∣∣k=mk=n∣∣k=m 时我们就可以原创 2020-07-29 23:47:32 · 157 阅读 · 0 评论 -
牛客小白月赛 23 A. 膜法记录
链接 https://ac.nowcoder.com/acm/contest/4784/A 题意 所有的敌人都排布在一个 n∗mn*mn∗m 的网格中 总共能够 aaa 次消灭一整行的敌人,bbb 次消灭一整列的敌人 求能否将敌人全歼 思路 二进制枚举选择行的状态 预处理每种状态能够消灭多少列的敌人(前缀和) cnt[i]cnt[i]cnt[i] 即为在 iii 的状态下有多少列上没有敌人 代码 #include<bits/stdc++.h> using namespace std; typed原创 2020-07-29 14:39:10 · 122 阅读 · 0 评论 -
NC 13885. Music Problem
链接 https://ac.nowcoder.com/acm/problem/13885 题意 问在 nnn 个数中是否能找出几个数,让它们的和是 360036003600 的倍数 思路 我们只要判断是否能找到一些数的和取模后是 000 就可 取模后有 360036003600 个值,我们用 bitset 存储,第 xxx 位为 111 表示当前存在一些数的和取模后为 xxx 当我们加入一个数 aaa 时:b∣=(b<<a)∣(b>>(3600−a))b|=(b<<a)|原创 2020-07-28 14:55:23 · 102 阅读 · 0 评论 -
LibreOJ 6121.「网络流 24 题」孤岛营救问题
链接 https://loj.ac/p/6121 题意 n∗mn*mn∗m 的矩阵中,求 (1,1)(1,1)(1,1) 走到 (n,m)(n,m)(n,m) 的最短路,每次可上下左右移动一个单位 相邻两格中间可能有一扇 gig_igi 类门或者有一堵墙或者无障碍 有 sss 把钥匙,位于 (xj,yj)(x_j,y_j)(xj,yj) 第 jjj 把钥匙能打开 qiq_iqi 类门 思路 记录路径上获得的钥匙状态,bfs 找最短路 代码 #include <bits/stdc++.h>原创 2021-02-18 00:59:50 · 147 阅读 · 0 评论