首页 > 奇奇怪怪的操作
头像 Yip.Chip
发表于 2023-03-08 17:03:52
D是一个贪心题目,由平方差公式我们可以知道和一定的情况下,两数越接近他们的乘积越大,所以我们可以将数列排序后划分为两部分,大数放入大根堆,小数放入小根堆,每次取出两个堆的堆顶,判断修改后的乘积是否更优,如果更优,则再次加入堆组,否则立即退出,因为此刻再运算一定不会得到更优的值了,同样负数也可以同时进 展开全文
头像 Genshin
发表于 2023-03-14 11:29:08
思考后发现可以贪心,类似哈夫曼树,直接开一个multiset,每次取出最小值和最大值即可。 int n,k; ll m; multiset <ll> s; void solve(){ cin>>n>>m>>k; for(int i=1;i< 展开全文

等你来战

查看全部