1. 程式人生 > >bzoj 4393 Usaco Fruit Feast

bzoj 4393 Usaco Fruit Feast

include max [1] print scanf %d usaco log esp

題目很明顯的一道dp題目。

方程也不難推 dp[i][0]表示飽食度為i沒喝水 dp[i][1]表示當前飽食度為i已經喝了水

#include <cstdio>
#include <algorithm>
using namespace std;

int t,a,b,Max;
bool dp[5000055][2];

int main(){
    scanf("%d%d%d",&t,&a,&b);
    dp[0][0]=1;
    for(int i=0;i<=t;i++){
        if(dp[i][0]){
            
if(a+i<=t) dp[a+i][0]=1; if(b+i<=t) dp[b+i][0]=1; dp[i/2][1]=1; } } for(int i=0;i<=t;i++){ if(dp[i][1]){ if(a+i<=t) dp[a+i][1]=1,Max=max(Max,a+i); if(b+i<=t) dp[b+i][1]=1,Max=max(Max,b+i); } } printf(
"%d\n",Max); return 0; }

bzoj 4393 Usaco Fruit Feast