問題描述
學校裡有許多節課,第 i 節課從 ti 時刻開始上,上課的時間為 si,如果上了第 i 節課,你的做題能力將變成 ci(是能力的數值,不是能力的增長值)。有 n 類作業,每類作業數量不限,每類作業完成乙份所需要的時間為 ai,做某類作業需要的做題能力達到 qi(>=qi)才能完成。在每個時刻你可以選擇上課、休息、做作業,如果選擇上課則必須上完整節課,如果選擇做作業必須花完整的 ai 時間做,同一時刻只能上一節課或做乙份作業。而且人的精力有限,在 t 時刻後必須停止學習(部分課可能上到 t 時刻後)。求在時限內最多可以完成幾份作業。在剛開始時,你的做題能力為 1,時刻為 1。輸入格式
第一行三個整數 t,m,n,表示總時間,有 m 節課,有 n 類作業。輸出格式接下來 m 行每行三個整數 ti,si,ci。
接下來 n 行每行兩個整數 ai,qi。
共一行,乙個整數 ans,表示時限內最多可以完成幾份作業。**基於題解:
#include #include #include #include #include #define ll long long
#define rep(i,x,y) for(ll i=(x);i<=(y);i++)
#define repl(i,x,y) for(ll i=(x);i<(y);i++)
#define repd(i,x,y) for(ll i=(x);i>=(y);i--)
using namespace std;
const ll n=1e5+5;
const ll m=1e2+5;
const ll inf=1e18;
ll t,m,n,ans=-inf,mi[m],f[n][m];
struct node a[n];
inline ll read()
while(ch>='0'&&ch<='9')
return f?-x:x;
}bool cmp(node p,node q)
rep(i,1,m-5) ans=max(ans,f[t][i]);
printf("%lld",ans);
return 0;
}
NOIP模擬 動態規劃 permut
題目描述 求由 1 到 n 一共 n 個數字組成的所有排列中,逆序對個數為 k 的有多少個。輸入格式 第一行為乙個整數 t 為資料組數。以下 t 行,每行兩個整數 n,k,意義如題目所述。輸出格式 對每組資料輸出答案對 10000 取模後的結果。樣例輸入 1 4 1 樣例輸出 3資料規模 對於 30...
NOIP模擬 table 動態規劃
source noip2016 rzz 2 t2 給定乙個 n m 的矩陣,行列均從 1 開始標號。乙個矩陣被認為是穩定的,當且僅當對於任意的 2 i n,第 i 行的數的和不小於第 i 1 行的數的和,且最後一行的數的和小於等於 m 並且要求矩陣中所有的元素都是非負的。求所有 n m 的穩定矩陣的...
NOIP模擬 記憶化搜尋 動態規劃 遊戲
題目描述 題目大意 有n個物品排成一排,從左往右第i個價值為a i 有兩個人從左往右輪流取物品。第乙個人可以拿一或兩個物品。如果前乙個人拿了k個,下乙個人只能拿k或k 1個。如果剩下的物品不夠拿,就結束。問如果大家都採取最優策略,那麼先手拿的物品的價值最多能比後手多多少。1 n 20000 樣例輸入...