生活随笔
收集整理的這篇文章主要介紹了
Nico的任务
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳送門
數(shù)據(jù)范圍這么大,爆搜肯定不行。
n*k也太大,所以dp肯定是1維的。
dp[i]表示在i時間下最大的休息時間。
dp[1]=0是毋庸置疑的。
我們把每個時間的任務(wù)記錄下來
若i時間沒有任務(wù)。
則 dp[i+1]=dp[i]+1
若i時間有任務(wù),那么在i+t時間內(nèi)不能玩了。
dp[i+t]=dp[i]
答案肯定是dp[n+1]了。
#include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
vector <int> w[
11000];
int dp[
11000];
int main()
{
memset(dp,
128,
sizeof(dp));
int n,k;
scanf(
"%d%d",&n,&k);
for(
int i=
1,x,l;i<=k;i++)
scanf(
"%d%d",&x,&l),w[x].push_back(l);dp[
1]=
0;
for(
int i=
1;i<=n;i++){
if(w[i].size()==
0)dp[i+
1]=max(dp[i+
1],dp[i]+
1);
elsefor(
int j=
0;j<w[i].size();j++)dp[i+w[i][j]]=max(dp[i+w[i][j]],dp[i]);}
printf(
"%d\n",dp[n+
1]);
}
總結(jié)
以上是生活随笔為你收集整理的Nico的任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。