hdu4968(選n個物品恰好裝滿的揹包)

2021-06-23 07:51:57 字數 672 閱讀 4248

題意:從40個物品中選出n個,裝到容量為v的揹包裡面,要求恰好裝滿得到的最大值和最小值

思路分析:dp1[i][j]表示取i個物品裝到容量為j的揹包裡面的最大價值,狀態轉移dp1[i][j] = max(dp1[i-1][j-cost]+value,dp1[i][j])。

這裡的初始化很關鍵,我初始化乙個物品a放在容量為j的揹包中的最大價值,同時要確保剩下的 n-1 個物品*60 的價值要小於v-value(a),這是題目要求

**入下:

#include#include#include#include#include#include#include#include#include#include#include#define n 1005

#define inf 0x7ffffff

#define eps 1e-9

#define pi acos(-1.0)

using namespace std;

double a[105];

void init()

double dp1[15][n],dp2[15][n];

int main()

printf("%.4lf %.4lf\n",dp2[n][v]/n,dp1[n][v]/n);

}return 0;

}

hdu 4968 最大最小gpa

給定平均分和科目數量,要求保證及格的前提下,求平均績點的最大值和最小值。dp i j 表示i個科目,總分j的情況,離線預處理以後直接輸出即可 dp i 1 j k max min dp i j gpa k 去掉60分以下的無用段可以提速.include include include include...

把n個物品分成m堆

1.把n個相同物品分成m個相同的堆,可空設為r n,m r n,m mk 1s n k 2.把n個相同物品分成m個相同的堆,不空設為s n,m s n,m s n 1,m 1 s n m m 3.把n個相同物品分成m個不同的堆,可空設為t n,m t n,m cm 1 n m 1 4.把n個相同物品...

題解 n選m個的排列

題目描述 從n個當中選m個,有多少種排列呢?請全輸出 輸入格式 輸入n,m 1 m n 5 輸出格式 所有可能的排列,字典序 輸入輸出樣例 輸入 1複製 3 2輸出 1複製 12 1321 2331 32本蒟蒻演算法 遞迴模擬多重迴圈 這是noi noip選手必備知識點之一 其實遞迴重在函式 特別是...