喔不!

該比賽已結束,您無法在比賽模式下遞交該題目。您可以點選“在題庫中開啟”以普通模式檢視和遞交本題。

Problem Description

Author: louishuang

nowob花費了7749天刻出了一個神奇演算法

可惜他太累了倒下去一直按到方向鍵跟空白鍵

code變成了這樣:


#include <iostre am>
#include <vect or>
#include <algori thm>

using name space st d;
typedef long lo ng ll;

const ll I NF = 2e18;
const int MA XN = 200005;
const int M AXC = 1000001;

struct L ine {
 ll k, b;
 int cn t;
 ll oper ator()(ll x) const { ret urn k * x + b; }
};

Li ne tr ee[MAXC * 4];

void up date(int p, int l, int r, Li ne v) {
 int m id = (l + r) >> 1;
 bool bl = (v(l) < tr ee[p](l)) || (v(l) == tr ee[p](l) && v.cn t > tre e[p].cnt);
 bool bm = (v(m id) < tre e[p](mid)) || (v(mi d) == tre e[p](mid) && v.cn t > tr ee[p].cnt);
 if (bm) sw ap(tre e[p], v);
 if (l == r) ret urn;
 if (bl != bm) up date(p << 1, l, mi d, v);
 else up date(p << 1 | 1, m id + 1, r, v);
}

Li ne qu ery(int p, int l, int r, ll x) {
 if (l == r) re turn tr ee[p];
 int mi d = (l + r) >> 1;
 Li ne re s = tre e[p];
 Li ne ne xt_res;
 if (x <= mi d) nex t_res = qu ery(p << 1, l, m id, x);
 else nex t_res = que ry(p << 1 | 1, m id + 1, r, x);
 if ((ne xt_res(x) < re s(x)) || (ne xt_res(x) == re s(x) && ne xt_res.cn t > re s.cnt)) {
 ret urn ne xt_res;
 } else {
 ret urn re s;
 }
}

ll d p[MAXN], s[MA XN];
int cn t[MAXN];

int ma in() {
 ios_base::sy nc_with_stdio(fal se);
 c in.t ie(NULL);
 int n;
 ll k;
 if (!(c in >> n >> k)) ret urn 0;
 vect or<ll> a(n + 1);
 for (int i = 1; i <= n; i++) ci n >> a[i];
 s[0] = 0;
 for (int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];

ll L = 0, R = 1e12, an s_val = 0;
 wh ile (L <= R) {
 ll mi d_cost = (L + R) / 2;
 for (int i = 0; i < MA XC * 4; i++) tr ee[i] = {0, I NF, 0};
 d p[0] = 0;
 cn t[0] = 0;
 up date(1, 0, MA XC, {0, 0, 0});
 for (int i = 1; i <= n; i++) {
 Li ne be st_line = qu ery(1, 0, MA XC, s[i]);
 d p[i] = be st_line(s[i]) + s[i] * s[i] + mi d_cost;
 cn t[i] = be st_line.cn t + 1;
 up date(1, 0, MA XC, {-2 * s[i], d p[i] + s[i] * s[i], cn t[i]});
 }
 if (cn t[n] >= k) {
 an s_val = d p[n] - k * mi d_cost;
 R = mi d_cost - 1;
 } else {
 L = mi d_cost + 1;
 }
 }
 co ut << an s_val << en dl;
 ret urn 0;
}

幫幫他找回原本的code吧太感謝了

只要直接送出正確的nowob就會給你一個AC感謝你



第14屆程設班歡樂賽——幻月遊戲

未參加
狀態
已結束
規則
IOI
題目
23
開始於
2026-4-23 17:15
結束於
2026-4-23 20:15
持續時間
3 小時
主持人
參賽人數
24