[BZOJ 1207][HNOI2004]打鼹鼠:DP
2017-04-17 21:51
337 查看
点击这里查看原题
类似于最长上升子序列,但是只有m^2做法,不过可以使用一个优化,用mx[i]表示前i项中最大的f[i]值,一旦mx[j]+1<=f[i]就break,实测优化前1920ms,优化后60ms。
类似于最长上升子序列,但是只有m^2做法,不过可以使用一个优化,用mx[i]表示前i项中最大的f[i]值,一旦mx[j]+1<=f[i]就break,实测优化前1920ms,优化后60ms。
/* User:Small Language:C++ Problem No.:1207 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=1e4+5; int f[M],n,m,mx[M],x[M],y[M],t[M],ans; int main(){ freopen("data.in","r",stdin);// scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d%d",&t[i],&x[i],&y[i]); f[i]=1; for(int j=i-1;j;j--){ if(mx[j]+1<=f[i]) break; if(f[j]+1>f[i]&&abs(x[i]-x[j])+abs(y[i]-y[j])<=t[i]-t[j]) f[i]=f[j]+1; } mx[i]=max(mx[i-1],f[i]); ans=max(ans,f[i]); } printf("%d\n",ans); return 0; }
相关文章推荐
- 【bzoj1207】[HNOI2004]打鼹鼠 dp
- BZOJ 1207: [HNOI2004]打鼹鼠【DP】
- bzoj 1207: [HNOI2004]打鼹鼠 (DP)
- [BZOJ 1207] [HNOI 2004] 打鼹鼠 【DP】
- bzoj1207: [HNOI2004]打鼹鼠(Dp)
- BZOJ 1207: [HNOI2004]打鼹鼠【妥妥的n^2爆搜,dp】
- BZOJ 1207: [HNOI2004]打鼹鼠( dp )
- bzoj 1207: [HNOI2004]打鼹鼠【dp】
- bzoj 1207: [HNOI2004]打鼹鼠 (dp)
- 【bzoj1207】[HNOI2004]打鼹鼠
- BZOJ系列1207《[HNOI2004]打鼹鼠》题解
- 【BZOJ】1207: [HNOI2004]打鼹鼠
- bzoj 1207 [HNOI2004]打鼹鼠
- bzoj千题计划147:bzoj1207: [HNOI2004]打鼹鼠
- bzoj 1207: [HNOI2004]打鼹鼠
- BZOJ 1207.[HNOI2004]打鼹鼠
- BZOJ1207 [HNOI2004]打鼹鼠
- 12.7 bzoj 1207[HNOI2004]打鼹鼠
- 【HNOI2004】【codevs1256】【BZOJ1207】打鼹鼠,小小DP
- 【bzoj1207】【HNOI2004】【打鼹鼠】