本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
洛谷:P6337 [COCI 2007/2008 #2] CRNE - 洛谷
【题目描述】
在一个矩形棋盘上,切与矩形的边平行的 n n n 次,问最多棋盘能被切成多少块?
【输入】
输入一行一个整数 n n n。
【输出】
输出一行一个整数表示棋盘最多被分成的块数。
【输入样例】
1
【输出样例】
2
【算法标签】
《洛谷 P6337 CRNE》 #COCI(克罗地亚)# #2007#
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int n; // 输入的正整数
int a; // 第一个分割数
int b; // 第二个分割数
int main()
{
// 输入正整数n
cin >> n;
// 将n尽可能平均分成两部分
a = n / 2; // 第一部分取n的一半(向下取整)
b = n - a; // 第二部分为剩余部分
// 计算并输出(a+1)*(b+1)
// 这个公式表示将n分成a和b两部分后,
// 可以组成的不同正数对的数量
cout << (a + 1) * (b + 1) << endl;
return 0;
}
【运行结果】
1
2