很简单的动态规划
方程:
a[i][j]=a[i-1][(j+n-1-1)%n+1]+a[i-1][(j+n+1-1)%n+1];
现在还是觉得(j+n+i-1)%n+1这个式子挺妙的
参考代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cmath> #include<vector> #include<set> #include<sstream> #include<cstring> #include<utility> using namespace std; typedef long long ll; typedef long l; const int N = 200020; int n,m,a[40][40]; int main(){ cin>>n>>m; a[0][1]=1; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ a[i][j]=a[i-1][(j+n-1-1)%n+1]+a[i-1][(j+n+1-1)%n+1]; //cout<<i<<" "<<j<<" "<<a[i][j]<<endl; } } cout<<a[m][1]; }
0.0分
5 人评分
【计算两点间的距离】 (C语言代码)浏览:1120 |
点我有惊喜!你懂得!浏览:2197 |
C语言训练-阶乘和数* (C语言代码)浏览:962 |
母牛的故事 (C语言代码)浏览:666 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:667 |
最小公倍数 (C语言代码)浏览:856 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:331 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:585 |
关于C语言变量位置的问题浏览:270 |