标签:个数 方法 就是 如何 不清楚 BMI force 节点 get
注意到 \(1,9,8,6\) 全排列可以得到所有 \(\bmod 7\) 的余数。
然后别的数随便排,这四个数选个排法就好了。
我场上怼的做法,时间复杂度 \(\Theta(nm\log )\),加个快读就过了。
分治,每次处理 \([l,r]\) 的列,找到中线,设 \(f(l,r)\) 表示中线左边有连续超过 \(l\) 个 \(1\),中线右边有超过 \(r\) 个 \(1\) 的行数,答案与每个 \((l+r)f(l,r)\) 取最大值即可。
时间复杂度 \(\Theta(nm)\),先预处理 \(f(i,j)\) 表示 \((i,j)\) 这个格子左边的连续的 \(1\) 个数。然后对每个 \(j\),把 \(i\) 这维排序然后计算贡献即可。这个排序可以用个桶。
看清题意:炸弹和宝藏合起来不超过 \(8\) 个。
题目中说了如何判断回路包含物品,但讲得不清楚。
大概就是每个物品向右有一条射线,如果穿过回路奇数次就被包括。
注意:把路径想象成一条曲线,然后这条射线可以与这个物品格子的上边线重合,这样可以防止把回路的一部分顺着这条射线走当成被包含。
然后把一个炸弹当作价值 \(-\infty\) 的宝藏,就可以分层图最短路,节点 \((x,y,s)\) 表示在 \(x,y\) 这个位置,对于 \(s\) 这个集合的宝藏射线穿过次数为奇数。
然后得出最短路以后答案与每个 \(s\) 的价值 \(-\) 起点与这个集合节点的最短路取 \(\min\) 即可。
标签:个数 方法 就是 如何 不清楚 BMI force 节点 get
原文地址:https://www.cnblogs.com/George1123/p/14242261.html