題意:從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選手必備知識點之一 其實遞迴重在函式 特別是...