[USACO18FEB]Snow Boots S

Posted ivanovcraft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO18FEB]Snow Boots S相关的知识,希望对你有一定的参考价值。

提供一种无脑DP做法

题目中大概有这么些东西:位置,穿鞋,跑路

数据小,那么暴力开数组暴力DP吧

设dp[i][j]表示穿着鞋子j,到达位置i是否可行

无脑转移

枚举位置,正在穿哪双鞋,换成哪双走出去,走几步

小的注意事项

1,穿这双鞋不能到这个地方就可以直接跳过,它不能用来转移

2,如果这只鞋不能满足在这个地方死不了,我们就不能穿这双鞋走出去

3,如果走这些步到达的地方,这双鞋不能承受,就不能转移

最后枚举最少穿几双走到n即可

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=260;
int n,b,dp[maxn][maxn],f[maxn],s[maxn],d[maxn];
int main()
{
    scanf("%d%d",&n,&b);
    for(int i=1;i<=n;i++)
        scanf("%d",&f[i]);
    for(int i=1;i<=b;i++)
        scanf("%d%d",&s[i],&d[i]);
    dp[1][1]=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=b;j++)
            if(dp[i][j])
                for(int k=j;k<=b;k++)
                    if(f[i]<=s[k])
                        for(int l=i+1;l<=min(n,i+d[k]);l++)
                            if(f[l]<=s[k])
                                dp[l][k]=1;
    for(int i=1;i<=b;i++)
        if(dp[n][i])
        {
            printf("%d
",i-1);
            return 0;
        }
    return 0;
}






















以上是关于[USACO18FEB]Snow Boots S的主要内容,如果未能解决你的问题,请参考以下文章

P4269 [USACO18FEB]Snow Boots G

bzoj5194: [Usaco2018 Feb]Snow Boots

USACO18FEB

P4271 [USACO18FEB]New Barns

[USACO15FEB]Censoring S「KMP算法」

luogu4269 Snow Boots G (并查集)