摘要: 对满足条件的发票做一遍$01$背包即可。 const int N = 3e6 + 10; int f[N]; int n; double m; void update(int v) { for(int j = m; j >= v; j--) f[j] = max(f[j], f[j - v] + v 阅读全文
posted @ 2021-06-22 23:38 Dazzling! 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 状态表示: \(f(i,j)\):$i$的$j$划分总数。 状态转移: 考虑$n$的$m$划分$a_i(\sum_^ma_i=n$): 如果对于每个$i$都有$a_i > 0$,那么${a_i-1}$就对应了$n-m$的$m$划分。 如果存在$a_i=0$,这就对应了$n$的$m-1$划分。 \[ 阅读全文
posted @ 2021-06-22 19:50 Dazzling! 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 借助前缀和,将二维的最大子矩阵转化为一维的最大子段和问题。 需要枚举最大子矩阵的首行和末行,内层循环每次都要求一遍最大子段和,时间复杂度为:\(O(n^3)\) const int N = 110; int a[N][N]; int f[N][N]; int n; int main() { whil 阅读全文
posted @ 2021-06-22 17:32 Dazzling! 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 将棋盘编码成字符串,然后利用哈希表判重+记录距离。 char g[2][4]; unordered_map<string, int> dist; unordered_map<string, string> path; string st,ed; void put(string s) { for(in 阅读全文
posted @ 2021-06-22 16:39 Dazzling! 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 在 DHCP 启动时,首先初始化 IP 地址池,将所有地址设置状态为未分配,占用者为空,并清零过期时刻。 其中地址的状态有未分配、待分配、占用、过期四种。 处于未分配状态的 IP 地址没有占用者,而其余三种状态的 IP 地址均有一名占用者。 处于待分配和占用状态的 IP 地址拥有一个大于零的过期时刻 阅读全文
posted @ 2021-06-22 12:52 Dazzling! 阅读(191) 评论(0) 推荐(1) 编辑