時間限制1000 ms記憶體限制65536 kb
丁神又要去google上班了,這一次丁神想多做幾道水題,並使題目的總水量最大.丁神同一時刻只能在水一道題,只有做完這道題才能得到它的水值,丁神的總時間為t,現在一共有n道題,編號從1到n,每道題有兩個值a和b,a為做這道題需要的時間,b為題目的水值。
輸入第一行為資料組數t(t≤10),接下來t組資料,每組資料中第一行為兩個數t和n,n為題目的數量,t為總時間,接下來n行,每行兩個正整數a和b。(1≤a,t≤1000,1≤n≤100,1≤b≤1000000000)
對於每組資料,輸出對應的最大總水量,每個輸出佔一行。
1
10 2
8 16
6 12
16
本題屬於動態規劃的0/1揹包問題,詳細分析參考 動態規劃-0/1揹包問題(含全部**)
/*417. 丁神又去谷歌
時間限制 1000 ms 記憶體限制 65536 kb
題目描述
丁神又要去google上班了,這一次丁神想多做幾道水題,並使題目的總水量最大.丁神同一時刻只能在水一道題,只有做完這道題才能得到它的水值,丁神的總時間為t,現在一共有n道題,編號從1到n,每道題有兩個值a和b,a為做這道題需要的時間,b為題目的水值。
輸入格式
輸入第一行為資料組數t(t≤10),接下來t組資料,每組資料中第一行為兩個數t和n,n為題目的數量,t為總時間,接下來n行,每行兩個正整數a和b。(1≤a,t≤1000,1≤n≤100,1≤b≤1000000000)
輸出格式
對於每組資料,輸出對應的最大總水量,每個輸出佔一行。
輸入樣例
110 2
8 16
6 12
輸出樣例
16project: google2
date: 2019/02/27
author: frank yu
0/1揹包 問題
*/#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define f(i,m,n) for(int i=m;i>t;
while(t--)
f(i,1,n+1)
f(j,0,t+1)
{if(j更多資料結構與演算法實現:資料結構(嚴蔚敏版)與演算法的實現(含全部**)
揹包 01揹包
01揹包 有n種物品與承重為m的揹包。每種物品只有一件,每個物品都有對應的重量weight i 與價值value i 求解如何裝包使得價值最大。dp i,v 表示前i個物體 包括第i個 面對容量為v的揹包的最大價值,c i 代表物體i的重量,w i 代表物體i的價值 如果第i個物體不放入揹包,則揹包...
揹包專題 01揹包
暑假集訓開始了,按照隊裡的分配,我是弄dp的,嘛,於是我又一次的開始了從01揹包開始學習,昨天將杭電的幾道01揹包重新做了一遍,下面講講我自己對於01揹包的理解。首先01揹包題目的雛形是 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。...
01揹包,完全揹包
動態規劃 動態規劃的核心是狀態以及狀態轉移方程。需要定義乙個 i,j 狀態以及該狀態的指標函式d i,j 01揹包 有n種物品,每種只有乙個,第i件物品的體積為vi質量為wi。選一些物品裝到體積為c的揹包中,使其體積不超過c的前提下重量最大。namevw abcd e 子問題定義 dp i j 表示...