专栏文章

题解:P12543 [APIO2025] 转杆

P12543题解参与者 5已保存评论 6

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
6 条
当前快照
1 份
快照标识符
@mip9bwfk
此快照首次捕获于
2025/12/03 08:16
3 个月前
此快照最后确认于
2025/12/03 08:16
3 个月前
查看原文
将直线按照幅角排序后,依次将第 n2+i\left\lceil\dfrac{n}{2}\right\rceil+i 条直线转至与第 ii 条直线垂直即可(i=1,2,,n2i=1,2,\cdots,\left\lfloor\dfrac{n}{2}\right\rfloor),操作次数 n2\left\lfloor\dfrac{n}{2}\right\rfloor
代码实现:
CPP
#include <bits/stdc++.h>
#include "rotate.h"

using namespace std;

void energy(int n, vector<int> a) {
    vector< pair<int, int> > p;
    for (int i = 0; i < n; ++i) p.emplace_back(a[i], i);
    sort(p.begin(), p.end());
    for (int i = 0, j = (p.size() + 1) / 2; j < p.size(); ++i, ++j) {
        rotate({p[j].second}, p[i].first + 25000 - p[j].first);
    }
}

评论

6 条评论,欢迎与作者交流。

正在加载评论...