随笔分类 - OJ&Competition——BZOJ
摘要:【传送门:BZOJ1102】 简要题意: 给出一张n*n的图,每个格子有一个高度,一个格子的八个方向为它的相邻格子,高度相同的相邻的格子形成连通块,一个连通块的相邻格子的高度如果都比连通块的高度大,则这个连通块称为山谷,如果都比连通块高度小,则称为山峰 特殊的,如果整张图的高度都相同,则整张图既为山
阅读全文
摘要:【传送门:BZOJ1532】 简要题意: 有n个人,m场比赛,求出赢得最多的人最少要赢多少场 题解: 网络流水题 二分答案x,st向每个人连边,流量为x,每个人向关于自己的比赛连边,流量为1,每场比赛向ed连边,流量为1 如果最大流为m,说明答案合法 参考代码:
阅读全文
摘要:【传送门:BZOJ1106】 简要题意: 有n种数,每种数有两个,给出一个2*n的序列,表示每个数在栈中的位置,可以任意交换相邻两个位置的数,若相邻两个数为同种数,则这两个数从栈中移除,然后所有上面的数都会掉落并形成连锁反应,求出移除所有数的最少步数 题解: 树状数组水题 若当前第i个位置出现的这个
阅读全文
摘要:【传送门:BZOJ2084】 简要题意: 若一个01串,先将01取反后,再将整个串翻转,如果能得到原来的01串,则说明这个串反对称 给出一个长度为n个01串,求出有多少个子串是反对称的 题解: Manacher好题 将回文的意义变为相对位置互不相同就行了 参考代码:
阅读全文
摘要:【传送门:BZOJ1116】 简要题意: 给出n个点,m条无向边,判断是否能够通过将某些边变成单向边,使得每个点入度都为1 题解: 因为每个点入度都为1时,必定是一棵外向树,而外向树有且仅有一个环 那么就判断所有连通图是否满足有且只有一个简单环,用tarjan来判 参考代码:
阅读全文
摘要:【传送门:BZOJ1097】 简要题意: 给出n个点,m条边的无向连通图,有k个必经点,有c组关系,每组关系输入x,y,保证x和y为必经点,代表要在x上逗留后才能在y上逗留(可以直接经过y点,这样就不算逗留),必经点的编号为2到k+1,求出从1点开始,经过k个必经点后,到达n点的最短距离 题解: P
阅读全文
摘要:【传送门:BZOJ1115】 简要题意: 给出n堆石子,除第一堆石子外,其他堆的石子数都不能少于前一堆的石子数。现有两人轮流取石子,每次能拿任意一堆的任意数量的石子,但要保证拿完以后仍满足每堆石子数不能少于前一堆的石子数。若不能再取石子则输掉比赛,询问先手是否必胜 题解: 阶梯博弈 因为每堆石子数都
阅读全文
摘要:【传送门:BZOJ2938】 简要题意: 给出n个01串,判断是否存在一个无限长的01串不包含任意一个给出的01串 题解: AC自动机构造fail指针,画一下图可以知道 如果在字典树中找到环,就可以找到一个无限长的01串 注意:当一个点有一个儿子不存在时,可以将fail边当作儿子边来使用,这样子就可
阅读全文
摘要:【传送门:BZOJ1098】 简要题意: 给出n个人与m个关系,每个关系包括x,y两个数,表示x与y能够相互联系对方。现在要将这n个人分成k块,使得不同块的任意两个人之间能够互相联系,求出最大的k 题解: 本来以为直接就补图+tarjan过掉,结果发现补图边数是n2级别的,稳T 然后发现其实很多状态
阅读全文
摘要:【传送门:BZOJ1131】 简要题意: 给出一棵n个点的无根树,求出以哪个点为根时,所有点的深度和最大,若有多个答案,输出编号最小的点 题解: 水题,先以1为根,求出所有点的初始深度,然后对于以1个根的答案,就是初始深度和 求初始深度时,顺便记录每个点的子树大小 然后让1继续深搜,我们发现一旦新遍
阅读全文
摘要:【传送门:BZOJ1113】 简要题意: 给出n个矩阵与每个矩阵的长宽,n个矩阵按输入顺序排成一排,求出能用多少个矩阵来覆盖所有矩阵 题解: 鸽了好久博客,一直在做书。。 先来一道水题爽一发 直接用栈维护一段长度严格上升的序列,每新进一个矩阵,就判断与队头的长度大小,然后实时更新答案就可以了 参考代
阅读全文
摘要:【传送门:BZOJ1857】 简要题意: 在一个平面直角坐标系中,给出A,B,C,D的坐标,AB有一条线段,CD有一条线段 如果在AB上行走,速度为P,如果在CD上行走,速度为Q,如果不在这两条线段上,而是在平面上行走,则速度为R 求出从A走到D的最少时间 题解: 三分套三分模版 首先可以发现从AB
阅读全文
摘要:【传送门:BZOJ5016】 简要题意: 给出n个数,q个询问,每个询问输入l1,r1,l2,r2,输出$\sum_{x=0}^{∞}get(l1,r1,x)*get(l2,r2,x)$ 其中$get(l,r,x)$表示l到r中x出现的次数 题解: 看这范围也是要离线的了,莫队搞一波 假设x已经确定
阅读全文
摘要:【传送门:BZOJ5042】 简要题意: 给出n个数,q个询问,每个询问输入opt,l,r,如果opt=1,则输出l到r中的最小值,否则输出最大值 题解: 直接上ST表,自信一波,结果 MLE??好吧,离线求,最大最小值用一个数组求 TLE???好吧,看讨论,询问的范围1000左右,好,缩一波时间
阅读全文
摘要:【传送门:BZOJ4259&BZOJ4503】 简要题意: 给出两个字符串,第一个串长度为m,第二个串长度为n,字符串中如果有*字符,则代表当前位置可以匹配任何字符 求出第一个字符串在第二个字串中出现的次数,及出现的位置开头在第二个字符串的位置(从小到大输出) 题解: FFT,通配符匹配 两道题几乎
阅读全文
摘要:【传送门:BZOJ4827】 简要题意: 给出两个环,逆时针从1到n输入一开始每个环相应位置的值,两个环的差异值为$\sum_{i=1}^{n}(x[i]-y[i])^2$ 可以给其中一个环的所有值都加上一个正整数,或者逆时针旋转其中一个环 求出能得到的最小差异值 题解: FFT 我们其实可以发现把
阅读全文
摘要:【传送门:BZOJ2194】 简要题意: 给出位置为0到n-1的a数组和b数组,定义$C[k]=\sum_{k<=i<n}a[i]*b[i-k]$,求出C数组 题解: 题目即正解系列 将这个式子变为$C[k]=\sum_{i=k}^{n-1}a[i]*b[i-k]$ 要使得为卷积形式,就将b倒过来,
阅读全文
摘要:【传送门:BZOJ2179&caioj1450】 简要题意: 给出两个超级大的整数,求出a*b 题解: Rose_max出的一道FFT例题,卡掉高精度 = =(没想到BZOJ也有) 只要把a和b的每一位当作是多项式的系数,然后做FFT就好了 然后将答案取下来,进行进位的操作,最后输出就好了 参考代码
阅读全文
摘要:【传送门:BZOJ3391】 简要题意: 给出一棵n个点的树,求出所有满足这个点的与这个点相连的边被删除后,形成的多棵子树的节点数都不超过n的一半的点 如果没有,则输出NONE 题解: 直接DFS求出每个点的子树的节点数和每个点的所有儿子的子树中的最大节点数 一开始没看见是树的结构,想了半天,结果发
阅读全文
摘要:【传送门:BZOJ2730】 简要题意: 给出m条无向边,每个点有人,有时候会出现一个点崩塌,使得这个点和与这个点相连的边都不能经过 可以在某些点设置安全出口,其它可以到达这些点的点上的人可以逃出去 请问至少设置多少个安全出口和求出最少安全出口的情况下有多少种设置的方案 题解: Tarjan求割点例
阅读全文

浙公网安备 33010602011771号