本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
网格路径
【题目描述】
从一个
2
×
2
2×2
2×2 网格的左上角出发,若只允许向右或向下移动,则恰好有
6
6
6 条抵达右下角的路径。

对于
20
×
20
20×20
20×20 网格,这样的路径有多少条?
【输入】
无
【输出】
一个正整数,表示题意中要求的路径条数。
【算法标签】
#数学
【代码详解】
#include <bits/stdc++.h>
using namespace std;
long long f[50][50]; // 动态规划数组,f[i][j]表示从(1,1)到(i,j)的路径数
int main()
{
f[1][1] = 1; // 起点(1,1)到自身的路径数为1
// 动态规划计算
for (int i = 1; i <= 21; i++) // 行
{
for (int j = 1; j <= 21; j++) // 列
{
// 状态转移:只能向右或向下移动
f[i][j] += f[i – 1][j] + f[i][j – 1];
}
}
cout << f[21][21] << endl; // 输出从(1,1)到(21,21)的路径数
return 0; // 程序正常结束
}
【运行结果】
137846528820


