NOIP 2001 裝箱問題 DP

2021-08-22 13:18:46 字數 840 閱讀 8871

題目描述

有乙個箱子容量為v(正整數,0<=v<=20000),同時有n個物品(0輸入:

每個測試檔案只包含一組測試資料,每組輸入的第一行為乙個整數v(0<=v<=20000),表示箱子的容量。 

第二行輸入乙個整數n(0輸出:

對於每組輸入資料,輸出乙個整數,表示箱子剩餘空間。 

分析:01揹包的變形,將每個物品的體積同時視為該物品的價值,然後求解所佔最大體積,最後用總體積-最大體積就是剩餘的最小空間。

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define clear(x) memset(x,0,sizeof(x))

#define fup(i,a,b) for(int i=a;ib;i--)

#define rfdn(i,a,b) for(int i=a;i>=b;i--)

typedef long long ll;

using namespace std;

const int maxn = 1e6+7;

const int inf = 0x3f3f3f3f;

const double pi=acos(-1.0);

const double eps = 1e-8;

int a[maxn],dp[maxn];

int read()

while(ch>='0'&&ch<='9')

return f*ret;}

int main()

noip2001統計單詞個數

本題字串處理需要注意 單詞個數的計算 先算s i 表示以i開頭的單詞,若有則s i 1,否則為0.這要充分注意題目的要求 考試時很難想到。另外在算 i,j 中單詞的個數時,如果以i為開頭,需要判斷這個單詞結尾有沒有超過j,沒有才可計入。同樣需要注意有些狀態是達不到的,這時若不賦初值在動規時判斷,狀態...

NOIP 2001 數的劃分

問題描述 將整數 n 分成 k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。問有多少種不同的分法。輸入 n,k 輸出 乙個整數,即不同的分法。樣例 輸入 7 3 輸出 4 四種分法為 6 n 200,2 k 6 記 f i,j 為 k i n j...

NOIP2001 統計單詞個數

題三 統計單詞個數 30分 問題描述 給出乙個長度不超過200的由小寫英文本母組成的字母串 約定 該字串以每行20個字母的方式輸入,且保證每行一定為20個 要求將此字母串分成k份 1樣例 輸入 11 3 thisisabookyouareaoh4is aoksab輸出 說明 不必輸出 7 this ...