九度oj 1152 點菜問題

2021-06-29 15:00:59 字數 1479 閱讀 5521

題目1152:點菜問題

時間限制:1 秒

記憶體限制:32 兆

特殊判題:否

提交:969

解決:500

題目描述:北大網路實驗室經常有活動需要叫外買,但是每次叫外買的報銷經費的總額最大為c元,有n種菜可以點,經過長時間的點菜,網路實驗室對於每種菜i都有乙個量化的評價分數(表示這個菜可口程度),為vi,每種菜的**為pi, 問如何選擇各種菜,使得在報銷額度範圍內能使點到的菜的總評價分數最大。

注意:由於需要營養多樣化,每種菜只能點一次。

輸入:輸入的第一行有兩個整數c(1 <= c <= 1000)和n(1 <= n <= 100),c代表總共能夠報銷的額度,n>代表能點菜的數目。接下來的n行每行包括兩個在1到100之間(包括1和100)的的整數,分別表示菜的》**和菜的評價分數。

輸出:輸出只包括一行,這一行只包含乙個整數,表示在報銷額度範圍內,所點的菜得到的最大評價分數。

樣例輸入:

90 4

20 25

30 20

40 50

10 18

40 2

25 30

10 8

樣例輸出:

95

38

2023年北京大學計算機研究生機試真題

//一維陣列

#include#include#includeusing namespace std;

int a[1002],b[102],c[102];

int main()

{ int n,m,i,j;

while(cin>>n>>m)

{memset(a,0,sizeof(a));

for(i=1;i<=m;i++)

cin>>b[i]>>c[i];

for(i=1;i<=m;i++)

for(j=n;j>=b[i];j--)

a[j]=max(a[j],a[j-b[i]]+c[i]);

cout<#include#includeusing namespace std;

int a[102][1002];

int b[102],c[102];

int main()

{ int n,m,i,j;

while(cin>>n>>m)

{memset(a,0,sizeof(a));

for(i=1;i<=m;i++)

cin>>b[i]>>c[i];

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

if(j>=b[i])

a[i][j]=max(a[i-1][j],a[i-1][j-b[i]]+c[i]);

else a[i][j]=a[i-1][j];

cout<

九度OJ 1152 點菜問題

北大網路實驗室經常有活動需要叫外買,但是每次叫外買的報銷經費的總額最大為c元,有n種菜可以點,經過長時間的點菜,網路實驗室對於每種菜i都有乙個量化的評價分數 表示這個菜可口程度 為vi,每種菜的 為pi,問如何選擇各種菜,使得在報銷額度範圍內能使點到的菜的總評價分數最大。注意 由於需要營養多樣化,每...

九度OJ 題目1152 點菜問題

一.題目描述 北大網路實驗室經常有活動需要叫外買,但是每次叫外買的報銷經費的總額最大為c元,有n種菜可以點,經過長時間的點菜,網路實驗室對於每種菜i都有乙個量化的評價分數 表示這個菜可口程度 為vi,每種菜的 為pi,問如何選擇各種菜,使得在報銷額度範圍內能使點到的菜的總評價分數最大。注意 由於需要...

九度 oj 題目1104 整除問題

1.2.有兩種做法 第一種做法,把n!做素數分解,用cnt1 i 代表n!中含有的primes i 的因子個數 如果n primes i x,那麼在n!中就有x個數含有primes i 為它的因子,但是這x個數中有的數含有多個primes i 為它的因子,所以還需要不斷的做 cnt1 i x pri...