Pipe Fitter and the Fierce Dogs

Posted smallocean

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pipe Fitter and the Fierce Dogs相关的知识,希望对你有一定的参考价值。

Pipe Fitter and the Fierce Dogs

[JAG Asia 2016]

理解题意之后,就是一个非常傻的DP

然后难在理解题意,理解非法状态

#include <bits/stdc++.h>
 
using namespace std;
const int maxn = 1e4+2;
int dp[maxn][3];
bool mp[maxn][maxn];
int main()
    int w,h,k,n;
    scanf("%d%d%d%d",&w,&h,&k,&n);
    for(int i=1,u,v;i<=n;++i)
        scanf("%d%d",&u,&v);
        mp[v][u]=1;
    
    int sp=(w+1)>>1;
    if(!(w&1)) --w;
    if(k<sp)
        puts("-1");
        return 0;
    
    k-=sp;
    int all=sp*((h+1)/2-1);
    int ans=0;
    for(int i=3;i<=h;i+=2)
        dp[1][0]=0x3f3f3f3f;
        dp[1][1]=1+mp[i-1][1];
        dp[1][2]=1+mp[i-1][2];
        for(int j=3;j<=w;j+=2)
            dp[j][0]=dp[j-2][2]+mp[i-1][j-1]+1;
            dp[j][1]=min(dp[j-2][0],dp[j-2][1])+mp[i-1][j]+1;
            dp[j][2]=min(dp[j-2][0],dp[j-2][1])+mp[i-1][j+1]+1;
        ;
        ans+=min(dp[w][0],dp[w][1])-sp;
    
    if(ans>=k)
        ans-=k;
        all-=k;
        all+=ans;
        printf("%d\n",all);
    else
        all-=k;
        printf("%d\n",max(0,all));
    
    return 0;

以上是关于Pipe Fitter and the Fierce Dogs的主要内容,如果未能解决你的问题,请参考以下文章

管道过滤器模式(Pipe and Filter)与组合模式(修改)

[RxJS 6] The Retry RxJs Error Handling Strategy

Pipe and Tap VS 使用 ngxs 订阅

Fitter Spark RDD 基于过滤不同 RDD 的结果

python 从stoichiometry fitter读入stoichout文件,处理它们并根据数据生成LaTeX表以供发布。

Unity3d中UGUI组件精简复盘(十八)Aspect Ratio Fitter组件