BZOJ 4393 Fruit Feast

Posted on 2017-02-14 17:35  ziliuziliu  阅读(144)  评论(0编辑  收藏  举报

沉迷刷水无法自拔。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 5005000
using namespace std;
int t,a,b;
bool vis[maxn];
int main()
{
    scanf("%d%d%d",&t,&a,&b);
    vis[0]=true;
    for (int i=1;i<=t;i++)
    {
        if (i>=a) vis[i]|=vis[i-a];
        if (i>=b) vis[i]|=vis[i-b];
    }
    for (int i=1;i<=t;i++) vis[i/2]|=vis[i];
    for (int i=1;i<=t;i++)
    {
        if (i>=a) vis[i]|=vis[i-a];
        if (i>=b) vis[i]|=vis[i-b];
    }
    for (int i=t;i>=0;i--) if (vis[i]) {printf("%d\n",i);return 0;}
}