题目链接:
http://codeforces.com/contest/651/problem/A
题意:
你有两个手机,和一个充电器,如果手机插上充电器,每秒涨%1的电,如果不插充电器,每秒掉%2的电
问你最多能维持多久两个手机都有电。
可以超过100%
解法:
DP
//CF 651A
using namespace std;
int a1, a2, dp[320][320], vis[320][320];//dp[i][j]表示第一个手机有i的电,第二个手机有j的电最长能够坚持多久
int dfs(int x, int y){
if(x > y) swap(x, y);
if(x <= 0) return 0;
if(vis[x][y]) return dp[x][y];
vis[x][y] = 1;
dp[x][y] = max(dfs(x-2, y+1), dfs(x+1, y-2)) + 1;
return dp[x][y];
}
int main()
{
cin >> a1 >> a2;
if(a1 == 1 && a2 == 1) return puts("0"), 0;
cout << dfs(a1, a2) << endl;
return 0;
}