• bzoj P1207


    这道题目包含了一定的优先策略,所以是不能用贪心解决的。。
    所以是一道dp题
    首先,我们将机器人放在第一只鼹鼠的洞,这样就能得到局部最优解
    接着,我们考虑可以从第j只地鼠出现的时间开始,一直向第i只鼹鼠出现的地方前进,
    或者是每次看一看能不能在下一只地鼠出现前走到哪里,如果不能,就不要浪费时间过去
    如果能的话,就取一个最优解
    证明:因为每只地鼠都会出现,但是他们被打死或者没被打死都不会影响到后面的鼹鼠出现,
    所以是无后效性的,可以用dp解决:
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,f[10010];
    struct node{
    int t,x,y;
    }a[
    10010];
    int main(){
    scanf(
    "%d%d",&n,&m);
    for(int i=1;i<=m;i++)scanf("%d%d%d",&a[i].t,&a[i].x,&a[i].y);
    for(int i=1;i<=m;i++){
    f[i]
    =1;
    for(int j=i-1;j>=1;j--)
    if(abs(a[i].x-a[j].x)+abs(a[i].y-a[j].y)<=a[i].t-a[j].t)f[i]=max(f[i],f[j]+1);
    }
    int ans=0;
    for(int i=1;i<=m;i++)ans=max(ans,f[i]);
    printf(
    "%d",ans);
    return 0;
    }
  • 相关阅读:
    leepcode题目解析4
    Python爬虫6-利用ProxyHandler设置代理服务器
    Python爬虫5-利用usergent伪装访问方式
    Python爬虫4-URLError与HTTPError
    Python爬虫3-parse编码与利用parse模拟post请求
    中间件
    跨域
    ORM中的锁和事务
    cookie和session
    之Ajax
  • 原文地址:https://www.cnblogs.com/heqingyu/p/7683087.html
Copyright © 2020-2023  润新知