/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
题目链接:
P1011 [NOIP 1998 提高组] 车站 – 洛谷

最佳思路:
枚举
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,n,m,x;
cin >> a >> n >> m >> x;
int up[25] = {0},down[25] = {0},sum[25] = {0};
up[1] = a,down[1] = 0,sum[1] = a;
for (int i = 0 ; i < m;i++)
{
up[2] = i,down[2] = i,sum[2] = a;
for(int j = 3;j < n;j++)
{
up[j] = up[j-1] + up[j – 2];
down[j] = up[j-1];
sum[j] = sum[j – 1] + up[j] – down[j];
}
if(sum[n-1] == m)
{
cout << sum[x];
break;
}
}
return 0;
}
运用多个数组如up down sum记录状态
然后i开始枚举所有值,但i的上界是m:
因为可以推出人数是不断增加的
别忘记设置2车站的初始状态
然后循环模拟上下车直到n-1站
与目标值去对比即可
关键思想:用多组数组同步去记录某一时刻的各种状态
至少我老是想不起来这么用
和这个
P1003 [NOIP 2011 提高组] 铺地毯-CSDN博客
思想异曲同工
实现100%通过率-171主机测评](https://www.171host.com/wp-content/uploads/2026/10/20261026130223-6adf4f5f34184-220x80.gif)


![打卡信奥刷题(3652)用C++实现信奥题 P12076 [OOI 2025] Cute Subsequences-171主机测评](https://www.171host.com/wp-content/uploads/2026/10/20261026055333-6adeeaddd0c48-220x150.png)

