• bzoj 1207: [HNOI2004]打鼹鼠


     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 using namespace std;
     5 int x[10008],y[10009],z[10008],f[10008],n,m,max1;
     6 int main()
     7 {
     8     scanf("%d%d",&n,&m);
     9     for(int i=1;i<=m;i++)
    10       scanf("%d%d%d",&x[i],&y[i],&z[i]);
    11     for(int i=1;i<=m;i++)
    12       {
    13         f[i]=1;
    14         for(int j=1;j<i;j++)
    15           if(f[i]<=f[j]&&fabs(y[i]-y[j])+fabs(z[i]-z[j])<=x[i]-x[j])
    16             f[i]=f[j]+1;
    17         if(max1<f[i])
    18           max1=f[i];
    19       }
    20     printf("%d
    ",max1);
    21     return 0;
    22 }

    n^2的线性dp f[i]表示前x[i]时间内打死第i只地鼠时,最多能打死多少只地鼠。

  • 相关阅读:
    用户使用调查报告
    Beta总结
    Beta冲刺Day7
    Beta冲刺Day6
    Beta冲刺Day5
    Beta冲刺Day4
    Beta冲刺Day3
    Beta冲刺Day2
    Beta冲刺Day1
    Beta预备
  • 原文地址:https://www.cnblogs.com/xydddd/p/5243646.html
Copyright © 2020-2023  润新知