AHOI2014 JSOI2014 宅男計畫

2022-05-02 02:09:07 字數 980 閱讀 7258

傳送門

我們首先要發現乙個性質:存貨天數隨買食物的次數的變化類似於單峰函式。

具體證明不會啊,好像是二分加三分來證明?但是沒有找到明確的嚴格證明。

感性理解一下就是:買的食物太少,很容易餓死;買太多就沒錢了,也活不長。

所以我們考慮如何對於當前三分的答案如何 \(\text\) 。

有乙個顯而易見的性質就是我們不會用**更高,質量更劣的食品。

也就是說我們希望**高的食品質量也一定要更好。

所以我們可以把所有食物按照**或者質量排序,然後開個單調棧掃一遍即可。

然後貪心策略就是說我們肯定是在一段時間內堅持吃一種食物直到過期或者沒錢,這個就很好算了。

#include #include #define rg register

#define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w", stdout)

using namespace std;

template < class t > inline void read(t& s)

typedef long long ll;

const int _ = 202;

ll m, f; int n, top, stk[_]; struct node t[_];

inline bool cmp(const node& x, const node& y)

inline ll calc(ll x)

}return res;

}int main()

n = top; for (rg int i = 1; i <= n; ++i) t[i] = t[stk[i]];

ll l = 1, r = m / f;

while (l < r)

printf("%lld\n", calc(l));

return 0;

}

AHOI2014 JSOI2014 騎士遊戲

題目背景 長期的宅男生活中,jyy又挖掘出了一款rpg遊戲。在這個遊戲中jyy會 扮演乙個英勇的騎士,用他手中的長劍去殺死入侵村莊的怪獸。題目描述 在這個遊戲中,jyy一共有兩種攻擊方式,一種是普通攻擊,一種是法術攻擊。兩種攻擊方式都會消耗jyy一些體力。採用普通攻擊進攻怪獸並不能把怪獸徹底殺死,怪...

AHOI2014 JSOI2014 騎士遊戲

題目 思博貪心題寫了乙個半小時沒救了,我也沒看出這是乙個 spfa 來啊 設 dp i 表示徹底乾掉第 i 只怪物的最小花費,乙個非常顯然的事情,就是對於 k i 值最小的怪物滿足 dp i k i 非常好理解,反正到最後都要乾掉這個怪物,何必再把它乾成別的怪物 於是我們按照 k i 的值先排序一下...

AHOI2014 JSOI2014 騎士遊戲

傳送門 考慮 text 設 dp i 表示滅種 霧 乙隻編號為 i 的怪物的代價。那麼轉移顯然是 dp i min k i,s i sum dp 但是我們會發現這個東西是有後效性的。所以我們會想要用建圖然後跑乙個最短路什麼的來搞。於是我們觀察到上面那個 text 式子中,dp i 如果用後面那一項來...