- 定位:2020年第十一届蓝桥杯省赛C/C++ B组试题H(7月试题)
- 原题:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2d63f64fe373e4448655cb06457b3bcc.png)
数据范围:1≤n,m≤30
输入样例2:20 21
输出样例2:92378 - 属性:动态规划
- 难度:初级
- 独白:
过两天就要考试了鸭!所以就不定心了,想着把模板什么的背背就差不多了,后来发现蓝桥想要获奖也不是那么容易的,就算我们前面拿下5+5+10,后面拿下15+20,那也才55分,最多三等。。。想要二等,那我们前面还得做出一个20分的题,即75分,那这样基本上二等就有了,三等保底,也就是说最后两个大题和最后一个填空不会,其他都得做出来,防止意外情况的话,就应该达到这样的水准。可是我现在的水平有点困难,面对这样的事是一个挑战。废话不多说了,尽最后的努力吧!
这是H题,是我们该得满分的题,如果我们只知道用递归或者dfs暴力搜的话,我们拿不了满分,正确的思路应该是动态规划。其实这里的动态规划不是太难的,我们只要给起点设置好了值,然后依据题目的要求模拟fibonacca序列的表达,还是有概率做出来的。 - 代码:
#include<iostream>
using namespace std;
int n, m;
int f[35][35];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==1&&j==1){
f[i][j]=1;
}else if(i%2==1||j%2==1){
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
cout<<f[n][m];
return 0;
}
- 总结:动态规划没有想象的那么难,可以联系Fibonacci序列的规律。
- 感悟:无所谓φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′,心态要好。
- 归档:已归档。