摘要:
对每次加入工人进行分段处理,同时维护工厂的前 k 大和。 每次处理当前工人,记当前工人和下一工人之间的工厂为新段,计算新段中每个工厂的贡献,然后将其降序排序,最后枚举分配去新工厂的人数和去旧工厂的人数,统计共同的贡献,取最大值就做完了。 这里维护前 k 大值的和用到了对顶堆,详细见代码。 #incl 阅读全文
摘要:
算叉积时注意溢出问题。 #include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; // 几何模板 template<class T> struct Po 阅读全文
摘要:
正无穷处向下看时,你只能看到在每个 x 位置上 y 值最大的那条直线,所以维护上凸包即可求解。 #include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; 阅读全文
摘要:
#include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; // 几何模板 template<class T> struct Point { T x; T 阅读全文