摘要:
做题记录,随时更新 阅读全文
摘要:
Dinic #include <stdio.h> #define MN 100010 #define MM 100010 #define inf 99999999 int fr[MN],ne[MM],v[MM],w[MM],bs=0; int jl[MN],S,T,N,dl[MN],dy[MN]; 阅读全文
摘要:
考前写题解增加RP。 D1T1: 考虑按照列DP。对于每一列选择的鱼的区间进行决策。每列中被选择的y坐标最大的鱼,需要被左面或右面覆盖。 假设我们决策好了前i列的方案,考虑第i列被选择的y坐标最大的鱼是否被第i-1列覆盖。 若没有覆盖,需要记录i列中选择的y坐标最大值。此时他需要被第i+1列覆盖,因 阅读全文
摘要:
T3: 给定数组,,对于一个数组,定义其代价: 每次可以取,,将其中一个-1,另一个+1,花费。直到a与b相同。 的代价就是最小花费。 求对于所有可能的b,代价总和。 首先,考虑b确定时代价怎么求。 显然,把a,b分别求前缀和。那 阅读全文
摘要:
题意:https://www.luogu.com.cn/problem/CF1349F1 首先这个序列中有相同元素,我们考虑逆排列。 把每个数出现的位置依次排列,相同的数字位置递减排列。 容易发现,在a(i+1)>a(i)的位置插入一条分割线即可。 设f(x,y)表示长度x的排列,有y个位置满足p( 阅读全文
摘要:
题意:有n个车站,每站有初始人数,每一天增加ai人,容纳量为bi。每天你可以派任意辆火车,按顺序接走前K个人。求维持m天最少要多少辆。 难度较大的DP。 我们发现一旦x车站有人被接走,那么前x-1个车站一定被清空。 利用这个性质可以DP。 设f(x,y,0/1)表示前 阅读全文
摘要:
循环串,常常和有关。 一个字符串的可以拆分为个等差数列,这个性质常常用于优化。 例题1:回文拆分 CF906E Reverses CF932G Palindrome Partition 这两道题,都可以通过一些转化变为回文区间划分。 首先,建 阅读全文
摘要:
题意: 对于一个进制数定义它的数根为把所有位上的数加在一起的结果。 给出一个长度为的进制串,次询问每次给定一个集合和一个数,计算有多少个可以通过将至多一个字符更改为中的元素使得数根为。 \(n,m\leq 2^{20 阅读全文
摘要:
// Game.cpp: implementation of the CGame class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include 阅读全文
摘要:
线性基,是可以删除的。 维护哪些数在线性基中,以及维护的每个线性基如何用它们表示,还有不在线性基中的数如何表示。 删除一个数时,分类讨论。 若这个数不在线性基中,直接删除即可。 否则,就要消除它的影响。 找到一个不在线性基中,且需要来表示的数。 如果找到了,那么把加入线性基中 阅读全文