摘要: 「网络流 24 题」搭配飞行员 考虑其实就是二分图最大匹配,建图可以按照如下的形式: 这是样例,所有边权均为 \(1\)。 如上图方式建模即可。 code 求方案就判断一下中间的边是否用掉(原网络图) 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(14) 评论(0) 推荐(0)
摘要: ![img](https://img2023.cnblogs.com/blog/3107168/202303/3107168-20230318130412170-403196381.png) 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(10) 评论(0) 推荐(0)
摘要: 「网络流 24 题」圆桌聚餐 上一题的简单改变,我们改一下: 中间的边权值为 \(1\),每个左边的点每往右流 \(1\),就有人派到那张桌子,这样也不会出现同组内多个人去同一张桌子的情况(因为中间边权为 \(1\))。 左边源点边为人数,右边汇点边为桌子容量。 code 类似题:试题库 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(12) 评论(0) 推荐(0)
摘要: P5482 [JLOI2011] 不等式组 这道题比板子还是难不少,因为有大量的分类讨论。 看到题就可以考虑平衡树了。 \(ax+b>c\iff ax>c-b\),根据不等式乘除法的变号规则分类。 \(a>0\),不等号方向不变,\(x>\dfrac{c-b}{a}\)。 \(a<0\),不等号方向 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(50) 评论(0) 推荐(0)
摘要: 稳定的牛分配 考虑先二分答案。 然后我们可以枚举区间,比如答案是 3,那么区间可以是 [1,3],[2,4] 这样的。对于每个区间,建立区间对应的边跑网络流,所有情况下如果有一种情况是所有牛恰好都匹配成功则 check 成功。 code 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(9) 评论(0) 推荐(0)
摘要: 平方 题意 给定 \(n\) 个数,然后让你拟定一个长度为 \(n\) 的数组 \(t\),使得 \(t_i>1\),且满足对于任意的 \(a_i\times a_{i+1}\times t_i\times t_{i+1}\) 为完全平方数,求 \(\min\prod t_i\)。 \(1\le n 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(15) 评论(0) 推荐(0)
摘要: 分配问题 考虑到类似于飞行员配对问题,唯一区别就是多了一个费用,跑费用流即可。 注意最长路的求法就是最短路的边权全部变成负的,然后最后负回来。 code 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(11) 评论(0) 推荐(0)
摘要: 运输问题 将超级源和左边的点连 \(a_i\),右边的点和超级汇连 \(b_j\),中间并没有规定只能给多少货物,设为无穷大。 然后就类似于分配问题。 code 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(20) 评论(0) 推荐(0)
摘要: 数字梯形 考虑网络流拆点。 对于一个点不能多次到达的限制,可以将其拆为两个点,中间容量为 \(1\),权值为点的权值。然后由于点不重合那么边一定不重合,除了起点连下来的边容量为 \(1\),其他边容量只要大于 \(1\) 就可以了。 第二个限制,不需要拆点,将费用放到边上,然后注意虚拟源点容量为 \ 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(9) 评论(0) 推荐(0)
摘要: 旅程 考虑删边比较难做,于是倒过来加边。 首先先做一遍 Floyd,然后每次加一条边,用这一条来更新,类似于 Bellman-ford,如果更新 \(i,j\),用边 \((x,y)\),则可写作 \(dis_{i,j}=dis_{i,x}+dis_{y,j}+w_{i,j}\),也可以先更新所有点 阅读全文
posted @ 2023-11-17 12:59 wscqwq 阅读(13) 评论(0) 推荐(0)
摘要: 负载平衡问题 看看就算了,注意 \(X_i\) 的定义最后一项应该是 \(\sum \limits_{j=1}^{i} A_j\) 而不是 \(\sum \limits_{j=1}^{i-1}A_j\)。 code 阅读全文
posted @ 2023-11-17 12:58 wscqwq 阅读(26) 评论(0) 推荐(0)
摘要: 妹子 考虑到首先判断可以横平竖直的放进去的情况。 先让 \(a_1<b_1,a_2<b_2\),然后判断是否存在 \(a_1\le a_2 \and b_2\le b_2\or a_1\ge a_2 \and b_2\ge b_2\)。 否则,交换使得 \(a_1\le a_2\)。 如图所示。 然 阅读全文
posted @ 2023-11-17 12:58 wscqwq 阅读(13) 评论(0) 推荐(0)
摘要: 餐巾计划问题 先拆点,将每天拆成两个点,一个表示用完的旧餐巾①,一个表示需要的新餐巾②。 考虑几种边: 购买边,从起点往②点连 \(\inf,p\)。 快洗边,从前 \(m\) 天往②点连 \(\inf,p\)。 慢洗边,从前 \(n\) 天往②点连 \(\inf,f\)。 容量限制边 从②点往终点 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(16) 评论(0) 推荐(0)
摘要: [![无标题.png](http://image.qingtengbc.com/2023/08/18/f99b5e833882d.png)](http://image.qingtengbc.com/2023/08/18/f99b5e833882d.png) 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(15) 评论(0) 推荐(0)
摘要: $1$ 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(17) 评论(0) 推荐(0)
摘要: 你有一个二进制串长度为N,串内包含0 和1 两个数字。现在用一种特殊的算法对该串进 行加密,加密方式是给定一个整数K 满足1 ≤ K ≤ N。对于该串内每个长度为K 的区间,计 算出该区间内数字的和,放进一个新序列里。新序列一共有N −K + 1 项,第i 项代表原序列 中第i 项到第i + K − 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(22) 评论(0) 推荐(0)
摘要: Alice 正在玩一个翻转串的游戏。这个游戏有一个S 串一个T 串。两个串都是01 串。Alice 每次操作可以把S 串的一个子串翻转。例如”101100”, 她选择”011” 翻转后得到”111000”。 Alice 希望进行最少次的操作,使得操作后的S 串内不包含T 作为S 的子串,你能否帮 助 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(19) 评论(0) 推荐(0)
摘要: 01串 对于相邻的两个段和\(S_i\)和\(S_{i+1}\)两段之间移动时的差别既删除了i号元素,添加了i+K号元素。如果\(S_i = S_{i+1}+1\)那么说明i号元素是1,i+K号元素是0。(删除1添加0),反之如果\(S_i = S_{i+1}-1\),那么i号元素是0,i+K号元素 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(20) 评论(0) 推荐(0)
摘要: P9744 「KDOI-06-S」消除序列 我们可以很容易发现操作 1 只可能使用一次。 先考虑序列固定的情况下的做法。 我们设 \(f_i\) 表示 \(1\sim i\) 用操作 1,\(i+1\sim n\) 不用的最小值。(\(i\) 可以取 \(0\),表示不用操作 1) 对于前半部分,先 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(27) 评论(0) 推荐(0)
摘要: P1972 [SDOI2009] HH的项链 我们考虑将所有询问按照右端点归类。 然后从左往右扫描每个位置,如果前面有位置和它重复,就把前面的位置删掉(这样做是对的,因为右端点只可能在之后了,那么要访问到前面的位置,就必须要到达这个位置,相当于把重复的贡献减掉)。 初始时假设所有位置都不重复,都是 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(20) 评论(0) 推荐(0)
摘要: 题意 给定一个集合 \(S,|S|=n\)。 共 \(m\) 轮操作,两人交替操作。 每一轮有一个参数 \(b\),每次进行两种操作:保留 \(S\) 中满足 \(b\mid x\) 的数或保留 \(S\) 中满足 \(b\nmid x\) 的数。 先手希望最终 \(S\) 内元素总和尽可能小,后手 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(17) 评论(0) 推荐(0)
摘要: 给定一个长度为 \(n\) 数列 \(a\),你可以按照一定顺序选择它们中的一个或多个。 初始贡献为你选择的数之和。 设新的数列是长度为 \(m\) 的数列 \(b\)。对于选择的每个数 \(b_i\),会造成 \(\sum_{j=i+1}^mget(a_j,a_i)\) 的贡献,\(get(x,y 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(20) 评论(0) 推荐(0)
摘要: P1486 [NOI2004] 郁闷的出纳员 有两种思路,均使用fhq-treap实现 维护一个变量delta表示全局偏移量,对于新插入的数减去偏移量。使用fhq-treap,可以分裂出<mid的部分,直接丢掉。 直接用fhq-treap维护一个类似于线段树的懒标记,每次放在根上即可。 方法1 #i 阅读全文
posted @ 2023-11-17 12:57 wscqwq 阅读(30) 评论(0) 推荐(0)
摘要: 日记和编辑器 \(n\) 个操作,5类: 在某个位置后插入一个字符串。 区间删除。 区间修改为一个字符串(长度可以不等)。 查询一段区间某种字符的出现次数 查询一段区间匹配模式串 \(P\) 的次数(\(P\) 固定) \(1\le n\le 10^5,|s|\le 10^5,\sum|s|\le 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(30) 评论(0) 推荐(0)
摘要: sakuya 我们考虑每对距离 \(d(i,j)\)(两个方向都算)在所有方案中的出现次数。 考虑捆绑法,共 \((m-1)!\),又因为 \(i,j;j,i\),所以出现次数就是 \(2(m-1)!\)。 问题就变成了求解出关键点对两两之间的距离。 我们考虑每条边的贡献,是边权乘以子树内的关键点数 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(38) 评论(0) 推荐(0)
摘要: A 魔力屏障 我们考虑设 \(f[i][j][k]\) 表示击破区间 \([i,j]\) 后,剩余魔力 \(k\),最少需要多少能量。 初始状态:对于所有区间为 \([i,i]\),击破后剩余 \(a[i]/2\),最少需要 \(a[i]\)。(如果击破能量超过 \(a[i]/2\),可以发现不是最 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(40) 评论(0) 推荐(0)
摘要: A 密文板 我们考虑两个栈,一个维护左括号,一个维护问号; 如果来了一个右括号,优先使用左括号,然后使用问号; 多余的问号,与左括号匹配; 最后再多余,问号自己互相匹配。 #include<iostream> #include<cstring> using namespace std; #defin 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(17) 评论(0) 推荐(0)
摘要: A 马 状态 \(f[i][j][k]\) 表示骑 \(i\) 次大圈、\(j\) 次小圈、\(k\) 次过河至少需要的马数。 发现过河一定是最先进行的,每次考虑最后一匹马的转移,只要是对应的三元组执行完后不会累倒就行。 可行的三元组不多,而且 \(i,j,k=100,100,100\) 是最坏的情 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(40) 评论(0) 推荐(0)
摘要: B 可爱捏 考虑完全立方数的构成一定是幂 \(\bmod 3\) 互补的两个数,如 \(2^2*3^3,2^4*3^6\),那么暴力的想法就是暴力分解,然后用 map 记录互补的数,但是这样因数分解复杂度太高了。 考虑优化,我们考虑分解出 \(\le \sqrt[3]a_i\) 的数,然后如果超过了 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(14) 评论(0) 推荐(0)
摘要: C 诗 我们考虑哈希。 对于每个询问,来了就哈希,然后排序,这样对于之后每个同是这个长度的串,就可以直接查询。 由于不同的串长最多是 \(1+2+3+\dots\),大概是 \(\sqrt n\) 的级别,每组瓶颈都是预处理,最多预处理 \(\sqrt n\) 次,加排序,那么复杂度就是 \(O(n 阅读全文
posted @ 2023-11-17 12:56 wscqwq 阅读(14) 评论(0) 推荐(0)
摘要: P9745 「KDOI-06-S」树上异或 参考:https://www.luogu.com.cn/blog/710100/p9745-kdoi-06-s-shu-shang-yi-huo-jian-yao-ti-xie 其中,转移中一部分考虑的是断边,那么两部分分离,乘法原理;如果连边,需要异或为 阅读全文
posted @ 2023-11-17 12:55 wscqwq 阅读(18) 评论(0) 推荐(0)
摘要: AcWing 247. 亚特兰蒂斯 题意:给定若干个矩形(长宽均平行于坐标轴),求它们的面积并(矩形的顶点坐标可以是实数)。 本题是扫描线算法的模板题。 扫描线,顾名思义,就是按照一条线扫过去,对于本题 扫描线 - OI Wiki (oi-wiki.org) 如上图,这就是扫描线的过程。 发现按照线 阅读全文
posted @ 2023-11-17 12:49 wscqwq 阅读(47) 评论(0) 推荐(0)