JLOI04完成情况

JLOI04完成情况
题目
越往前做题目就越简单了 而且只有4道
通过省选试题难度的变化 看来JLOI这几年确实进步了不少
这次的题目全都做上了
第一题是一道数学题 在这里就不多说了
第二题他让你求的是一个点(x,y)使得sigema(wi*((x-xi)^2+(y-yi)^2))(1<=i<=n 以下同此)最小
初看这个式子里又有x 又有 y 很复杂不好权衡
可是乘法是符合结合率的
所以原式=sigema(wi*(x-xi)^2)+sigema(wi*(y-yi)^2)
所以当sigema(wi*(x-xi)^2)、sigema(wi*(y-yi)^2)都取道最小时既为所求
则就好办了就是一个带权平均数问题(这个好像有学名不过忘了)
以x为例x=sigema(wi*xi)/sigema(xi) y同理
第3题:
如果枚举任意2个为c的方块然再bfs或并查集找最长曲线显然是要超时的(O((n*m)^3),1<=n,m<=30)
发现由于只改动两个方块而每次都求一边最长曲线会造成许多重复运算
如果现将整个矩阵先用并查集做一遍然后枚举该边哪两个为c的方块再算最长曲线就可以在常数时间内完成最长曲线的求解
如果你总是觉得用什么不对劲的地方 没关系(其实我一开始也是这样的)
我还有一种人那你放心的方法:先枚举一个c然后做一次并查集然后再枚举另一个c再用并查集求解 这回不乱了吧(能合并的最多有2条曲线) 这个方法只是将常数增大了 而让算法清晰了 不失为一种不错的选择
第4题
想了好久差点放弃了 因为只想到了O((n+m)*(n*m)^2)的算法
但后来一看1<=n,m<=10这个时间复杂度是绰绰有余的
显然任意一个被切下来的矩形都与其他矩形再无干系 这就使得这个模型没有后效性
提到后效性不由得让我们想到DP
状态为f[x1][y1][x2][y2]表示把左上角为(x1,y1) 右下角为(x2,y2)的矩形分割成题目中要求的形态最少需要的切割长度 转移只需要枚举切割线就好了

你可能感兴趣的:(JLOI04完成情况)