hdu 6024-dp

来源:互联网 发布:驾校网络推广方案 编辑:程序博客网 时间:2024/05/22 11:30


链接:点击打开链接


题意:裸DP,枚举i这个位置左边最近一个水果店就行了。(然而被爆int卡了好久,MDZZ)


代码:

#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define inf 0x6f6f6f6fusing namespace std;typedef long long ll;const int mx=3010,mod=1e9+7;int n,m,cnt;struct pos{ll p,v;bool operator < (pos A)const{return p<A.p;}}po[mx];ll dp[mx];int main(){while(~scanf("%d",&n)){     for(int i=1;i<=n;i++){     scanf("%lld%lld",&po[i].p,&po[i].v);     }     sort(po+1,po+1+n);     dp[1]=po[1].v;     dp[0]=0;     for(int i=2;i<=n;i++){         dp[i]=3e14;     ll v2=0;     for(int j=i-1;j>=1;j--){     v2+=(i-j-1)*(po[j+1].p-po[j].p);     ll v1=min(po[i].v,po[i].p-po[j].p);     dp[i]=min(dp[i],dp[j-1]+v1+v2+po[j].v);     }     }     printf("%lld\n",dp[n]);}return 0;}




0 0
原创粉丝点击