題解 JSOI2014 宅男計畫

2022-05-07 22:18:12 字數 953 閱讀 9393

首先我們發現, 那些保質期短, **又貴的我們肯定不會選

所以先拿單調佇列彈掉這些

然後就在保質期內選最便宜的就行

這樣我們發現, 外賣小哥來的次數少, 我們每次買的就多, 花費就多, 外賣小哥來的次數多, 我們每次買的就少, 但是付外賣的錢又多了起來

經過看題解後發現, 這應該是乙個單峰函式

那麼我們三分一下

最優情況下應該是保質期內買最便宜的, 並且每次外賣小哥來送的貨都是一樣的(除了最後一次不一定)

那麼只要我們買不滿, 就把他丟到最後一次送就行

#include #include #include #include typedef long long ll;

const int n = 205;

using namespace std;

int n, top;

ll m, k, ans;

struct node

} a[205], stk[205];

template < typename t >

inline t read()

while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();

return x * w;

}ll f(ll x)

}return d;

}int main()

n = top;

for(int i = 1; i <= n; i++) a[i] = stk[i];

ll l = 1, r = m / k;

while(r - l >= 5)

for(ll i = l; i <= r; i++) ans = max(ans, f(i));

printf("%lld\n", ans);

return 0;

}

AHOI2014 JSOI2014 宅男計畫

傳送門 我們首先要發現乙個性質 存貨天數隨買食物的次數的變化類似於單峰函式。具體證明不會啊,好像是二分加三分來證明?但是沒有找到明確的嚴格證明。感性理解一下就是 買的食物太少,很容易餓死 買太多就沒錢了,也活不長。所以我們考慮如何對於當前三分的答案如何 text 有乙個顯而易見的性質就是我們不會用 ...

jzoj3673 JSOI2014 宅男計畫

description 外賣店一共有n種食物,分別有1到n編號。第i種食物有固定的價錢pi和保質期si。第i種食物會在si天後過期。jyy是不會吃過期食物的。比如jyy如果今天點了乙份保質期為1天的食物,那麼jyy必須在今天或者明天把這個食物吃掉,否則這個食物就再也不能吃了。保質期可以為0天,這樣這...

題解 JSOI2014 歌劇表演

我們可以把這些人拆成一些集合,保證對於乙個集合你只知道這個整體,而無法分辨出哪一部分是哪些人 起初所有人都在乙個集合中 我們對於每一次操作,肯定會有一些人屬於同乙個集合 那你就可以從這個集合中分辨出這些人來,把這些人摳出來重新丟進乙個集合 最後乙個人乙個集合的就可以被分辨出來 include inc...