BZOJ 题目整理

时间:2023-03-12 12:51:44

BZOJ 题目整理

bzoj 500题纪念

总结一发题目吧,挑几道题整理一下,(方便拖板子)

1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移、旋转、放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份翻转后的序列,直接上AC自动机即可。注意特判

1125:hash+splay

1183:digit-product只可能是2,3,5,7的积,枚举digit-product进行dp即可

1301:每个点和每个边只能被删除一次,随便搞

1313:上下界最大流

1471:考虑容斥,枚举两条路径相交的位置

1512:tarjan缩点+dp

1519:考虑最后一次耕的地是长,那么可以发现确定左右边界时上下边界是一定的,于是就可以\(O(n^2)\) dp了

1533:单调队列

1535:字符串相关——

1733:k短路

2090:记录到某位置的最长序列长度,用线段树优化

2093:倍增

2103:考虑枚举控制范围的分割线,两边都可以\(O(L)\)计算重心——向最大的孩子方向移动

2213:求任意两个字母前缀差的最小值、最大值

2288:选的肯定是整段的正数或者负数

2289:二分相交区域的横坐标,如果当前\(x=x0\)的直线与所有圆有交点,且交集非空,则输出yes,否则由于相交区域连续,通过圆的位置、斜率它确定在哪一侧

2398:这种题明显就是把两个子问题拧在了一起,splay+位运算LCP

2614:因为只有当碟子上的数与k的gcd不为一时,才对乘积有贡献,注意到k的约数个数很少,所以可以把相同gcd的碟子压在一起。似乎要离散化。

2969:分别计算每一个位置的期望,加起来即可

2704:裸插头dp

2794:考虑离线,枚举a,m,f[i]表示用b尽可能大的物品能否凑出i

2916:考虑求答案的补集

2928:考虑分治

2945:一道结论题

2949:尝试\(O(n^2)\)模拟,每次暴力尝试将某一只蚂蚁向上移动即可

2951:扫描线+线段树

2979:有下界最小流

2085:hash求重叠长度,然后上倍增floyd

3007:转化为最小边问题

3029:暴力上dp

3060:先加入大于k的点之间的边,然后再去加其他的边,贪心即可

3188:标记技巧

3283:快速幂,扩展bsgs,扩展lucas 三合一

3325:用类似mancacher的方法求出相同的字符,并查集维护

3337:块状链表模板题

3347:容斥,分别考虑每种高度的贡献,该贡献由:高度为该高度的行数、列数,高度大于该高度的行数、列数

3702:线段树合并

3834:考虑枚举答案,推一下式子就会发现可以分块了

3907:统计越过\(y=x\)的路径,将这些路径第一次越过该线的部分按\(y=x\)翻转

3429:后缀数组

4269:线性基

4305:枚举公约数,容斥出解

4407:什么时候再去推发式子

4491:线段树维护

4499:线性函数套线性函数还是线性函数

4578:枚举分界线

4589:裸异或FWT

4612:分成两段进行枚举:枚举l,枚举b

4621:最终一定是连续的,所以就可以dp了

4668:并查集奇技淫巧

4688:矩阵快速幂

4691:搜索+压位

4698:对查分序列建后缀自动机

这些都是AC人数不超过185的题

感觉随便挑一道题就是省选模拟呢~

接下来干什么呢~继续刷bzoj?刷codeforces?

不造&