签到
签到
恶心模拟
首先是找到双方左上角第一个#的位置,然后以此为重叠位置开始遍历
然后再每次旋转\(90°\)
用\(map\)存一下每一行的哪些列有点,枚举矩阵的左下角和右上角
一个最小生成树,把最小生成树以外的边权为正的边都取走
先跑出来一条最短路,非最短路上的边直接输出最短路
最短路上的边最多只有\(n\)条,暴力枚举去掉哪一条,然后\(bfs\)再求一遍
我一开始在考虑答案序列怎么储存在根节点上,结果其实序列只要维护到叶子节点,把答案返回父亲
我们可以用一个权值线段树动态维护一个节点到根节点上出现过哪些数值,并且线段树上二分
然后交替返回答案的最大值和最小值
\(wqs\)二分\(dp\)