BZOJ 4393 Fruit Feast

沉迷刷水无法自拔。

#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
",i);return 0;}
}
原文地址:https://www.cnblogs.com/ziliuziliu/p/6398609.html