UVa11420 - Chest of Drawers(动态规划)

简介: UVa11420 - Chest of Drawers(动态规划)
#include <cstdio>#include <cstring>usingnamespacestd;
typedeflonglongLL;
constintN=70;
constintM=2;
LLmemo[N][M][N];
intn, s;
boolinput();
voidsolve();
LLdfs(intdep, intlock, intseq);
intmain()
{
#ifndef ONLINE_JUDGEfreopen("d:\\OJ\\uva_in.txt", "r", stdin);
#endifwhile (input()) {
solve();
    }
return0;
}
boolinput()
{
scanf("%d%d", &n, &s);
if (n<0&&s<0) returnfalse;
returntrue;
}
LLdfs(intdep, intlock, intseq)
{
if (dep==n) returnseq==s;
LL&ans=memo[dep][lock][seq];
if (ans!=-1) returnans;
ans=0;
if (!lock) {
ans+=dfs(dep+1, 1, seq) +dfs(dep+1, 0, seq); 
    } else {
ans+=dfs(dep+1, 1, seq+1) +dfs(dep+1, 0, seq);
    }
returnans;
}
voidsolve()
{
memset(memo, -1, sizeof(memo));
printf("%lld\n", dfs(1, 0, 0) +dfs(1, 1, 1));
}
目录
相关文章
|
11月前
|
算法 安全 Java
非启发式算法——中国剩余定理
非启发式算法——中国剩余定理
180 0
|
机器学习/深度学习 自然语言处理
动态规划算法Oj题(一)
动态规划算法Oj题(一)
70 0
|
存储 算法 C++
剑指offer(C++)-JZ69:跳台阶(算法-动态规划)
剑指offer(C++)-JZ69:跳台阶(算法-动态规划)
UVa10484 - Divisibility of Factors(数论)
UVa10484 - Divisibility of Factors(数论)
116 1
UVa668 - Parliament(贪心)
UVa668 - Parliament(贪心)
107 0
UVa11710 - Expensive subway(最小生成树)
UVa11710 - Expensive subway(最小生成树)
91 0
|
算法
UVa 10341 - Solve It【经典二分,单调性求解】
原题: Solve the equation:         p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0         where 0 0) 15 { 16 printf("No solut...
904 0
Uva 10339 - Watching Watches【数论,暴力】
题目链接:10339 - Watching Watches 题意:两个时钟,一个每天慢a秒,一个每天慢b秒,问两钟重新相遇的时刻 1圈有12 * 60 * 60秒,然后1圈 / abs(a - b),就可以求出多少天会相遇,然后就能求出A钟一共慢了多少秒,进而可以求出该时刻的时和分! 下面给...
1183 0