bzoj题解汇总(1032~1051)

时间:2024-08-29 10:34:02

bzoj1034:贪心

bzoj1036:树剖

bzoj1037:一个比较巧妙,利用连续性维护的dp。

http://www.cnblogs.com/Sdchr/p/6129496.html

bzoj1038:一题多解。

http://www.cnblogs.com/Sdchr/p/6129842.html

bzoj1040:基环树最大独立集

拆边+分类讨论+树形dp

http://www.cnblogs.com/Sdchr/p/6106172.html

bzoj1041:圆上的整点

本原勾股数公式

http://www.cnblogs.com/Sdchr/p/6059195.html

bzoj1042:

生成函数+FFT或者背包dp预处理。

容斥原理将问题进行转化。

bzoj1043:

http://www.cnblogs.com/Sdchr/p/6131981.html

bzoj1044:

第一问:二分+贪心

第二问:普通的线性dp

bzoj1045:

设数,代数变形。

得出一个初一就应该会的绝对值模型。

根据绝对值的几何意义,然后找中位数即可。

bzoj1046:

最小字典序dp,处理方法:逆序处理,正序贪心输出

http://www.cnblogs.com/Sdchr/p/6130221.html

bzoj1047:

单调队列 or 二维ST表 支持 快速矩形求最值

这里的ST表可以省略掉一维,因为n固定

http://www.cnblogs.com/Sdchr/p/6130246.html

bzoj1048:

这种每次切一刀的问题,貌似都可以用这种记忆化搜索的方法。

设\(f[a][b][c][d][k]\)表示矩形\((a,b),(c,d)\)中,分成\(k\)份的最小均方差。

bzoj1024也是类似的做法。

bzoj1049:

对于任意\(i,j,i<j\),要满足\(a_j-a_i>j-i\)

所以\(a_i-i<a_j-j\)

所以设\(a'[i]=a_i-i\)

然后求最长上升序列,剩下的一定可以构造出来。用\(n\)减去长度即可。

bzoj1050:

排序,枚举最小边,求得最大边的最小值。极大化思想。

其实数据范围开大些好像也可以做。首先把边权从小到大排序,然后二分答案,枚举最小边权,用two pointer+LCT维护连通性,可以做到\(O(n\log^2 n)\)

bzoj1051:

强连通分量,Tarjan裸题