摘要: 因为是模板题,所以思维难度并不是很大。 主要思路就是用树剖进行整体架构,用线段树进行求区间和的操作。 其中对每个节点进行基于 序的重编号,以方便用线段树维护区间和。 代码量略大,笔者写了219行。数据结构建议进行封装,以避免命名冲突和理解上的混乱。 cpp include //强制内联展开 ifnd 阅读全文
posted @ 2019-01-23 19:22 Saikbird 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 线段树模板。 cpp typedef long long lli; template class segment_tree { typedef long long lli; int n; lli tr, tag; allocator fd; void init(); void build(int n 阅读全文
posted @ 2019-01-22 11:34 Saikbird 阅读(110) 评论(0) 推荐(0) 编辑
摘要: "T1" 其实就是某种程度上的树上最长链。 "CF1105C" 设 代表数组的第 位在前 位的数字之和模 等于 时共有 种可能的取值,循环时引入 来状态转移即可。 cpp include using namespace std; typedef long long lli; constexpr in 阅读全文
posted @ 2019-01-21 16:09 Saikbird 阅读(92) 评论(0) 推荐(0) 编辑
摘要: "原题题面" 这题是网络流24题中难度较小的一道题,并没有什么思维难点 1. 从源点向 个单位分别连边,流量为其人数 1. 分别从 张桌子向汇点连边,流量为其容量 2. 从 张桌子分别向 张桌子连边,流量为 (因为同一个单位来的代表不在同一个餐桌就餐。) 若最大流等于总人数,则有解,否则无解。 路径 阅读全文
posted @ 2018-12-21 13:55 Saikbird 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 原题题面 网络流24题?费用流?不存在的 tag都是骗人的 首先看题,仔细想想,这不就是一个最短路吗? 然而本蒟蒻看不出一些题解中说的分层图最短路,于是直接写单源最短路 从 (1,1) 往 (n,n) 跑最短路,以 dis[x][y][res] 来记录当位于 (x,y) 时还能再跑 res 条边的最 阅读全文
posted @ 2018-12-14 21:40 Saikbird 阅读(245) 评论(0) 推荐(0) 编辑