随笔分类 - 题目总结 / dp / 状态压缩dp
摘要:前言 中文互联网上没有这道题题解, 那我算不算攒功德 思路 题意 给定 nnn , 其中 1≤n≤10181 \leq n \leq 10^{18}1≤n≤1018 求 {1,2,3,⋯ ,n}\{1, 2, 3, \cdots, n\}{1,2,3,⋯,n} 中, 有多少子集满足 子集内 gcd
阅读全文
摘要:官方题解 官方题解 如果可用座位数少于 2k2k2k,那么答案就是 000。设 R(j)R(j)R(j) 是有 jjj 对共享一个公共边的排列数量。那么答案是 {∑j=0k−1(availableSeats−2j2)+∑j=1k(−1)j×[Rj×(kj)×j!×∑r=0k−j−1(availabl
阅读全文
摘要:前言 又是重庆题, 继续害怕 最近打算每天少踢点球, 我效率不高, 还是要多堆点时间的 然后就是倒计时要多关注, 别老无视 听讲很重要啊 冷静一点, 不死磕, 不畏难, 太难太偏的直接不管即可 思路 转化题意, 定义一个位置为局部极小值, 当且仅当其在以自己为中心 的方
阅读全文
摘要:前言 大风天踢了会球, 立竿见影就觉得感冒了, 无敌了, 一会去医务室整点抗病毒 颓了一会好点了() 思路 首先转化题意 给你一张 点 边的图 和一棵同样由这 个点组成的树 , 求对树上的点有多少中标号方式
阅读全文
摘要:思路 今天时间剩的不多, 还是看看得了 发现听过某个巨佬讲这道题, 可惜忘了 你发现约束条件数 很小啊, 容易想到状压, 但这是后事了 先考虑一下有没有什么符合直觉的做法, 你发现他求 个元素的子集? 这我写鸡毛啊 算了反正状态不好, 复习一下回寝了 下一次写这个题还要等到考
阅读全文
摘要:思路 赛时想到的部分: 这个题和之前做过的一题很像, 说不定可以冲正解? 唯一的区别就是差 , 而且每次可以 分数组第一位一定要是 你发现在序列之中匹配完了之后, 剩下 个数就要做 次操作 如果匹配了 对, 剩下来 个数
阅读全文
摘要:前言 困了一下午, 仅仅只搞懂了个大概, 我们赶紧把这些题补了, 冷静一点 思路 观察大样例可以发现, 答案好像都不大 容易证明的是先用最多 次关闭所有开关, 然后在 次打开每个灯, 这样一定不超过 次就可以成功的打开所有灯 那么我们考虑以这个为突破口, 枚举
阅读全文
摘要:算法 看到数据范围很小, 考虑状压 我们考虑从左上往右下推答案, 那么显然的, 我们只需要考虑向上向左方向的冲突情况, 而无需考虑向下向右的 考虑轮廓线 , 虽然不太标准就是了 实际上对于这样的情况, 我们考虑枚举绿色部分是否选择, 然后对状态进行转移
阅读全文
摘要:算法 经典题, 好好学一下 首先用一条虚线把矩阵分为两部分, 上面的部分已经填充完毕, 下面还没有完成 那么我们记录这条虚线 (轮廓线) 下方的 个方块, 表示没有填充砖块, 表示填充了砖块, 那么如何转移呢? 首先规定转移必须只能向上和向左填, 这样可以简化,
阅读全文
摘要:算法 题意是清楚的, 我们注意到, 类似于这种框图问题, 考虑使用轮廓线 首先要确定几种情况, 观察样例就可以知道, 分割完一个选区之后, 只有这几种情况 所以我们记录 表示当前决策点处轮廓线长什么样 , 表示这是决策点是第几列(?) , 就有定义 \
阅读全文
摘要:题面 传统 T4 找不到原题 挂个 pdf 题面下载 算法 不容易想到把出发点, 有被困同伴的人称作关键点 那么只需要求出关键点之间, 关键点到任意一个终点的最短距离, 然后在搜索即可求解 dijkstra 算法求单源最短路 , 显然会 T 飞 dijkstra 算法求单源最
阅读全文
摘要:题目链接 Fish 算法 状压dp 维护余下鱼的存在集合 代码 #include <bits/stdc++.h> const int MAXN = 20; const int MAXSize = (1 << 18); int n; double P_eat[MAXN][MAXN]; //第 i 条鱼
阅读全文