牛客 能天使的願望

2021-10-05 17:07:20 字數 1981 閱讀 6707

出題人寄給大家的一些閒話:參加了csp-j/s 2019 的同學,考的都怎麼樣啊?不論是 500+ 收穫省一而歸的大佬,還是 100+ 無奈而回的小牛,無論你考的如何,是非成敗轉頭空

不論是退役的前輩還是現役的"戰友" ,只要你參與了這場比賽,就說明你對oi仍然抱有熱愛,無論成績如何,不變的,永遠是那一顆熱愛oi的心

好了,閒話扯了那麼多,開始做題吧,希望這套題目能夠帶給你們愉快的做題體驗

---------------窩是闊耐的分割線啦qaq---------------

老闆……不,義人,以手中的這把銃起誓,我將守護您的生命直到萬物終結之日。

眾所周知,能天使有兩個願望:

第乙個願望!請送我八把銃當禮物!我們天使都有自己的守護銃,但只有一把可不夠看!

第二個願望……找個人把我頭上的這盞日光燈管關掉!

你顯然不能幫能天使實現第二個願望,但是你可以用你手上的龍門幣幫她完成第乙個願望

在一條直線上均勻的分布著 n個店鋪,每個店鋪有 m 把銃**,你不想自己出門買銃,所以打算網購(?)

在第 i 個店鋪購買 j 把銃需要 pi,j 元。如果在某商店購買了少於 y 把銃,則每把銃需要額外支付 ai 元郵費,如果購買 y 把及以上,則在這家店可以包郵。

另外,在每家店只能購買一次,也就是說你在每家店最多下一次訂單

現在能天使想要 k 把銃,請問購買 k 把銃的最小花費是多少(總花費=總郵費+總購買費)?

當然,能天使並不喜歡鋪張浪費,所以請不要購買超過 k 把銃,同時保證一定能夠購買 k 把銃

第一行 4 個整數,n,m,k,y

第二行 n 個整數,第 i 個數表示 ai

接下來 n 行,每行 m 個數,表示 pi,j

一行乙個非負整數,表示題目描述中的最小花費

5810

3102010051

1357

911131524

681012

141612

3456

7813

6101521

2836

1020

3040

5060

7080

12
在樣例1中,在第三家店買7把銃,然後在第一家買3把銃,總價為7+5=12,因為都是3把以上,所以不用郵費

5810

8102010051

1357

911131524

681012

141612

3456

7813

6101521

2836

1020

3040

5060

7080

21
在樣例2中,在第三家店買8把銃,然後在第四家店買2把,總價為8+3+25=21,其中25為在第四家店購買的郵費

n,m,k <= 800 ; k <= min(800,n*m) ; y<=k

ai <= 100 pi,j <= 10,000,000

pi,j-1 <= pi,j

分組揹包問題。

#include

#include

using

namespace std;

#define inf 0x3f3f3f3f

const

int n =

805;

int a[n]

;int p[n]

[n];

int f[n]

;int

main()

}fill

(f, f + n, inf)

; f[0]

=0;for

(i =

1; i <= n;

++i)}}

cout << f[k]

<< endl;

return0;

}

天使的果凍 牛客

題目描述有 個果凍排成一排。第 i個果凍的美味度是 a i 天使非常喜歡吃果凍,但她想把最好吃的果凍留到最後收藏。天使想知道前 x個果凍中,美味度第二大的果凍有多少美味度?一共有 q次詢問。注 如果最大的數有兩個以上,預設第二大的等於最大的。例如,2,4,3,4 這個序列,第二大的數是4。輸入描述第...

牛客練習賽59 B 牛能和小鎮

題目描述 在牛國有2個小鎮編號1,2,3.n 1,n。用二維平面來表示每個小鎮的位置,第個小鎮的位置為 xi,yi 牛能做為牛國的國王,決定給小鎮之間建設一些道路,以便於任意小鎮之間都能相互到達,在第個小鎮和第個小鎮之間建設一條道路的花費是 xi xi yi xj xj yj yi yi yi 2 ...

牛客 wyh的物品

題解 一道經典的實數二分題。二分答案,假設取這k個物品的下標為i1,i2,iki1 i2 ik 二分得到乙個答案x。a為重量,b為價值,實際的結果為 j 1kbi jaij sum k frac j 1k aij bij 如果 j 1kbi jaij x sum k frac x j 1k aij ...