zoukankan      html  css  js  c++  java
  • [SDOI2004]打鼹鼠

    ......

    心血来潮,手打abs

    结果...BZOJ上CE,洛谷上WA...

    把宏定义换成函数就过了

    显然一个点可以走到另一个点,当且仅当两点鼹鼠出现时间$leq$两点间距离的曼哈顿距离

    显然是DP

    f[i]=max{f[j]}+1(i,j满足条件t[i]-t[j]>=abs(x[i]-x[j])+abs(y[i]-y[j]))

     1 #include<cstdio>
     2 #include<queue>
     3 #include<iostream>
     4 #include<cstring>
     5 #define int long long 
     6 inline int abs(int x){if(x<0) return -x;return x;}
     7 using namespace std;
     8 inline int read(){
     9     int ans=0,f=1;char chr=getchar();
    10     while(!isdigit(chr)){if(chr=='-') f=-1;chr=getchar();}
    11     while(isdigit(chr)){ans=(ans<<3)+(ans<<1)+chr-48;chr=getchar();}
    12     return ans*f;
    13 }int n,m,x[10005],y[10005],z[10005],f[10005],ans;
    14 signed main(){
    15     n=read(),m=read();
    16     for(int i=1;i<=m;i++)    z[i]=read(),x[i]=read(),y[i]=read(),f[i]=1;
    17     for(int i=1;i<=m;i++){
    18         for(int j=1;j<i;j++)
    19             if(z[i]-z[j]>=abs(x[i]-x[j])+abs(y[i]-y[j]))
    20                 f[i]=max(f[j]+1,f[i]);
    21         ans=max(ans,f[i]);
    22     }cout<<ans;
    23     return 0;
    24 }
  • 相关阅读:
    团队项目-BUG挖掘
    评论任务
    4-14结对-复利计算
    做汉堡-结对
    复利计算--结对
    input上传按钮的优化
    avalon.js与 ajax使用的一个错误实例
    去除list集合中重复项的几种方法
    mvc学习记录
    常用js正则
  • 原文地址:https://www.cnblogs.com/zhenglw/p/10555523.html
Copyright © 2011-2022 走看看