日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯 ALGO-31 算法训练 开心的金明

發(fā)布時(shí)間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯 ALGO-31 算法训练 开心的金明 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題描述
  金明今天很開心,家里購置的新房就要領(lǐng)鑰匙了,新房里有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對(duì)他說:
“你的房間需要購買哪些物品,怎 么布置,你說了算,只要不超過N元錢就行”。今天一早金明就開始做預(yù)算,但是他想買的東西太多了,
肯定會(huì)超過媽媽限定的N元。于是,他把每件物品規(guī)定了一 個(gè)重要度,分為5等:用整數(shù)1~5表示,第5等最重要。他還從因特網(wǎng)上查到了每件物品的價(jià)格(都是整數(shù)元)。他希望在不超過N元(可以等于N元)的前提 下,使每件物品的價(jià)格與重要度的乘積的總和最大。
  設(shè)第j件物品的價(jià)格為v[j],重要度為w[j],共選中了k件物品,編號(hào)依次為 j1,j2,……,jk,則所求的總和為:
  v[j1]*w[j1]+v[j2]*w[j2]+ …+v[jk]*w[jk]。(其中*為乘號(hào))
  請(qǐng) 你幫助金明設(shè)計(jì)一個(gè)滿足要求的購物單。
輸入格式
  輸入文件 的第1行,為兩個(gè)正整數(shù),用一個(gè)空格隔開:
  N m
  (其中N(<30000)表示總錢 數(shù),m(<25)為希望購買物品的個(gè)數(shù)。)
  從第2行到第m+1行,第j行給出了編號(hào)為j-1的物品的基本數(shù)據(jù),每行有2個(gè)非負(fù)整數(shù)
  v p
  (其中v表示該物品的價(jià)格(v<=10000),p表示該物品的重要度(1~5))
輸出格式
  輸出文件只有一個(gè)正整數(shù),為不超過總錢數(shù)的物品的價(jià)格與重要度乘積的總和的最大值(<100000000)。
樣例輸入
1000 5
800 2
400 5
300 5
400 3
200 2
樣例輸出
3900

?

?

?

思路:

1. 01背包變種,加了個(gè)重要度,主體沒變化

#include <iostream> #include <cmath> using namespace std;int v[30000], p[30000]; int n, m; //n是總錢數(shù),m是購買物品數(shù) int dp[205];int main() {scanf("%d %d", &n, &m);for(int i = 1; i <= m; i++){scanf("%d %d", &v[i], &p[i]);}for(int i = 1; i <= m; i++){for(int w = n; w >= v[i]; w--){dp[w] = max(dp[w], dp[w-v[i]] + v[i]*p[i]);}}printf("%d",dp[n]);return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯 ALGO-31 算法训练 开心的金明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。