博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2569 彼岸
阅读量:6050 次
发布时间:2019-06-20

本文共 756 字,大约阅读时间需要 2 分钟。

思路:动态规划。因为不能有连续三个不同的颜色,所以只要看最后三个就可以了。

设dp[n]为长度为n到达彼岸的方案数。

①当第n-2个颜色和第n-1个颜色相同时,第n个位置可以取任意一种颜色,dp[n-1]==dp[n-2],dp[n] = dp[n-2]*3;

②当第n-2个颜色和第n-1个颜色不同时,第n个位置只要取前两个中的任意一个即可,dp[n-1]-dp[n-2]为第n-1个位置不同的方案数,dp[n] =(dp[n-1]-dp[n-2])*2。

dp[n] = dp[n-2]*3 +dp[n-1]-dp[n-2])*2 = dp[n-1]*2+dp[n-2]

代码:

 

#include
using namespace std;#define ll long long#define pb push_back#define mem(a,b) memset((a),(b),sizeof(a))const int INF=0x3f3f3f3f;const int N=1e5+5;ll dp[40];int main(){ int n; int c; dp[1]=3; dp[0]=3; for(int i=2;i<40;i++) { dp[i]=dp[i-1]*2+dp[i-2]; } scanf("%d",&c); while(c--) { scanf("%d",&n); printf("%lld\n",dp[n]); } return 0;}

 

转载于:https://www.cnblogs.com/widsom/p/7305452.html

你可能感兴趣的文章
程序响应性
查看>>
Using Container Service to Build WeChat Applets
查看>>
RGB颜色转换算法C语言实现
查看>>
用GOACCESS分析NGINX日志
查看>>
Creating Skins with SkinSys Ver 1.0
查看>>
OPM数据泄露:生物识别可以信任吗?
查看>>
《VMware Virtual SAN权威指南》一3.3 VSAN网络配置之VMware标准交换机
查看>>
《中国人工智能学会通讯》——2.18 深度学习算法的计算与访存特征
查看>>
《工业控制网络安全技术与实践》一3.4 本章小结
查看>>
并发基础
查看>>
增加SDN和NFV优势的三种技术
查看>>
甲骨文收购能源效率云服务商Opower
查看>>
云技术正在改变3D打印行业生态
查看>>
使用Python提供高性能计算服务
查看>>
美国广告商新技术:可跨平台追踪用户
查看>>
软件定义网络带来新的自动化优势和挑战
查看>>
只为那句承诺-大话Promise
查看>>
IaaS市场大整合:云用户喜忧参半
查看>>
Skype-Type:一款通过声音窃取键盘记录的Keylogger工具
查看>>
思科收购安全云新贵Observable网络 计划打造自己的Stealthwatch平台
查看>>