摘要:
做题记录,随时更新 阅读全文
摘要:
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: 给定数组$a$,\(w\),对于一个数组$b$,定义其代价: 每次可以取$a_i$,\(a_{i+1}\),将其中一个-1,另一个+1,花费$w_i$。直到a与b相同。 $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天最少要多少辆。 \(n,m\leq 200\) 难度较大的DP。 我们发现一旦x车站有人被接走,那么前x-1个车站一定被清空。 利用这个性质可以DP。 设f(x,y,0/1)表示前 阅读全文
摘要:
T1:若$x$存在一个约数$y$满足$y$的十进制表示有$7$,那么$x$就是不好的,$T$次询问给出$n$,询问大于$n$的最小的好数。\(n<=10^5,T<=10^7\)。 解法:类似筛法的思路。先预处理$b7(x)=b7(x/10)||(x\mod10==7)$,表示$x$的十进制中有无$7 阅读全文
摘要:
循环串,常常和$border$有关。 一个字符串的$border$可以拆分为$O(logn)$个等差数列,这个性质常常用于$DP$优化。 例题1:回文拆分 CF906E Reverses CF932G Palindrome Partition 这两道题,都可以通过一些转化变为回文区间划分。 首先,建 阅读全文
摘要:
题意: 对于一个$B$进制数$x$定义它的数根为把所有位上的数加在一起的结果。 给出一个长度为$n$的$B$进制串$s$,$m$次询问每次给定一个集合$A$和一个数$x$,计算有多少个$s[l ... r]$可以通过将至多一个字符更改为$A$中的元素使得数根为$x$。 \(n,m\leq 2^{20 阅读全文
摘要:
// Game.cpp: implementation of the CGame class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include 阅读全文
摘要:
线性基,是可以删除的。 维护哪些数在线性基中,以及维护的每个线性基如何用它们表示,还有不在线性基中的数如何表示。 删除一个数$x$时,分类讨论。 若这个数不在线性基中,直接删除即可。 否则,就要消除它的影响。 找到一个不在线性基中,且需要$x$来表示的数$y$。 如果找到了,那么把$y$加入线性基中 阅读全文