首页 > 最优屏障
头像 __y__
发表于 2020-10-13 16:39:12
思路 插入屏障就是将一个区间分割成两个区间[1,x]和[x+1,n],所以我们可以利用栈来求出前缀的对数和、后缀的对数和,然后在一个for循环来寻找最大值,减少的最大防守力就是[1,n] - [1,x] - [x+1,n],最优的屏障放置位置就是当前的x+1。 代码 #include <b 展开全文
头像 QWQ-ea
发表于 2023-09-19 17:08:23
计算每座山作为一个相互监视点间的区间左端点和中间点的的次数(除作为区间右端点外),然后取次数最多的那一个,其左端点即为答案。 #include<bits//stdc++.h> using namespace std; long long int Min(long long int 展开全文