【luogu1280】尼克的任务(dp)

来源:互联网 发布:上海卓易科技 大数据 编辑:程序博客网 时间:2024/05/21 09:31

题目:

我是超链接

题解:

f[i]表示第i时刻的最短工作时间,最后用n-,逆序dp

代码:

#include <cstdio>#include <cstring>#include <iostream>using namespace std;bool vis[10005];int p[10005],e[10005],f[10005],t[10005];int main(){int n,k,i,j;memset(vis,0,sizeof(vis));scanf("%d%d",&n,&k);for (i=1;i<=k;i++){scanf("%d%d",&p[i],&t[i]); e[i]=p[i]+t[i]; vis[p[i]]=1;}for (i=n;i>=1;i--)//最短工作时间       if (vis[i])      {      f[i]=n+1;      for (j=1;j<=k;j++)        if (p[j]==i) f[i]=min(f[i],f[e[j]]+t[j]);  }  else f[i]=f[i+1];printf("%d",n-f[1]);}

0 0
原创粉丝点击