由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥。
小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为“跳舞毯”,他的运动方式是每次都从A开始跳,每次都可以任意跳到其他块,但最后必须跳回A,且不能原地跳.为达到减肥效果,小黑每天都会坚持跳n次,有天他突然想知道当他跳n次时共几种跳法,结果想了好几天没想出来-_-
现在就请你帮帮他,算出总共有多少跳法。
Input
测试输入包含若干测试用例。每个测试用例占一行,表示n的值(1<=n<=1000)。
当n为0时输入结束。
Output
每个测试用例的输出占一行,由于跳法非常多,输出其对10000取模的结果.
Sample Input
2
3
4
0
Sample Output
2
2
6

思路:dfs+记忆化搜索

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define mod 10000
const int maxn=1000+2;
int d[3][maxn];
int n;
int dfs(int i,int cur){int &ans=d[i][cur];if(ans)return ans; //当i块,cur层已经计算过了,就直接返回结果就行了,否则会超时(记忆化) if(cur==n){if(i==0){ans++;ans%=mod;}return ans;}for(int j=0;j<3;j++){if(i!=j){ans+=dfs(j,cur+1);ans%=mod;}}return ans;
}
int main(){while(scanf("%d",&n)==1 && n){memset(d,0,sizeof(d));int ans=dfs(0,0);printf("%d\n",ans);}return 0;
}

HDU 2154 跳舞毯相关推荐

  1. HDU 2154 跳舞毯

    http://acm.hdu.edu.cn/showproblem.php?pid=2154 Problem Description 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准 ...

  2. HDU 2154 跳舞毯 (递推)

    Problem Description 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥. 小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为" ...

  3. hdu 2154 跳舞毯 (DP)

    点击打开链接 dp[i]=dp[i-1]+2*dp[i-2] #include"stdio.h" int main() {__int64 dp[1005];int i;int n; ...

  4. HDU 2154:跳舞毯

    跳舞毯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  5. 【HDU】3441 Rotation

    题意:给出A和C(1<=A,C<=10^9),所有满足B * B * K + 1 = A * A, (K >= 0)的B,构成边长为B的正方形,等角度的围绕在一个小正方形的周围.用C ...

  6. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

  7. HDU题目分类啊!!!

    分类一(详细): 分类二: 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.10 ...

  8. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  9. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  10. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

最新文章

  1. 再见!Kafka决定弃用Zookeeper...
  2. GetWindowThreadProcessId 获得窗口所在进程ID和线程ID
  3. python实现二叉树和它的七种遍历
  4. 将结构体数据存储到一段字符串string中
  5. 为什么程序员更喜欢用google搜索? 因为正经!
  6. hdu1114Piggy-Bank(完全背包)
  7. c# mysql 连接
  8. java的queue类,java集合类深入分析之Queue篇
  9. jsp地址栏传中文显示乱码解决方法
  10. LeetCode 64.最小路径和(动态规划)
  11. IE6 与 GZIP, BUG汇总
  12. 2022年4月国产数据库大事记
  13. 计算机屏幕保护程序怎么设置,电脑屏保怎么设置锁屏
  14. win服务器系统下的软路由,如何用Windows 2000 Server充当软路由
  15. Unity分屏显示效果
  16. 企业自动化运维ansible
  17. 程序员的吵架,跟女朋友能讲理吗?
  18. Xmanager或者Xshell用户连接信息迁移
  19. IG541与七氟丙烷灭火系统到底有什么不一样呢?
  20. 理解特征向量/特征空间和样本空间

热门文章

  1. NC65 凭证辅助核算项目查询
  2. 线性代数笔记26——傅立叶级数
  3. 工具说明书 - FTDI芯片的USB转UART串口线
  4. python计算sinx的程序_Python Tensorflow sin()用法及代码示例
  5. 计算机视觉目标检测算法综述
  6. 解决vscode没有文件图标(亲测有效)
  7. (转帖)SpringBoot自定义Starter
  8. java adsl 拨号_[zt]利用脚本实现ADSL自动拨号上网
  9. 【程序人生】为什么开通博客?
  10. C++遇到Id returned 1 exit status解决办法