[NOIP1998 提高组] 车站(代码解释在最后)

news/2024/7/8 4:14:58 标签: c++

[NOIP1998 提高组] 车站

题目描述

火车从始发站(称为第 1 1 1 站)开出,在始发站上车的人数为 a a a,然后到达第 2 2 2 站,在第 2 2 2 站有人上、下车,但上、下车的人数相同,因此在第 2 2 2 站开出时(即在到达第 3 3 3 站之前)车上的人数保持为 a a a 人。从第 3 3 3 站起(包括第 3 3 3 站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第 n − 1 n-1 n1 站),都满足此规律。现给出的条件是:共有 n n n 个车站,始发站上车的人数为 a a a,最后一站下车的人数是 m m m(全部下车)。试问 x x x 站开出时车上的人数是多少?

输入格式

输入只有一行四个整数,分别表示始发站上车人数 a a a,车站数 n n n,终点站下车人数 m m m 和所求的站点编号 x x x

输出格式

输出一行一个整数表示答案:从 x x x 站开出时车上的人数。

样例 #1

样例输入 #1

5 7 32 4

样例输出 #1

13

提示

对于全部的测试点,保证 1 ≤ a ≤ 20 1 \leq a \leq 20 1a20 1 ≤ x ≤ n ≤ 20 1 \leq x \leq n \leq 20 1xn20 1 ≤ m ≤ 2 × 1 0 4 1 \leq m \leq 2 \times 10^4 1m2×104

NOIP1998 提高组 第一题

题解

#include <iostream>
using namespace std;

int main() {
    int a, n, m, x;
    cin >> a >> n >> m >> x;

    int sh[21] = {0}, xia[21] = {0};  // sh数组表示每站上车人数,xia数组表示每站下车人数
    int ren;  // 记录当前车上的总人数

    // 枚举在第二站上车和下车的人数i,找到一个合适的i使得在终点站下车人数为m
    for (int i = 0;; i++) {
        for (int k = 1; k <= n; k++) {
            sh[k] = 0;
            xia[k] = 0;
        }
        sh[1] = a;  // 第1站上车人数为a
        ren = a;  // 初始车上人数为a
        sh[2] = i;  // 假设第2站上车人数为i
        xia[2] = i;  // 第2站下车人数为i
        for (int j = 3; j <= n - 1; j++) {
            sh[j] = sh[j-1] + sh[j-2];  // 第j站上车人数为前两站上车人数之和
            xia[j] = sh[j-1];  // 第j站下车人数为上一站上车人数
            ren += sh[j] - xia[j];  // 更新当前车上的人数
            if (ren > m)
                break;
        }
        if (ren == m)  // 找到合适的i使得在终点站下车人数为m
            break;
    }

    int ans = a;  // 从第1站开出时车上的人数为a
    for (int k = 3; k <= x; k++) {
        ans += sh[k] - xia[k];  // 更新从第3站到第x站开出时车上的人数
    }
    cout << ans;  // 输出从第x站开出时车上的人数

    return 0;
}


http://www.niftyadmin.cn/n/5536363.html

相关文章

游戏AI的创造思路-技术基础-自然语言处理

自然语言处理-可以对游戏AI特别是RPG类、语言类游戏进行“附魔”&#xff0c;开发出“随机应变”和你聊天的“女友”、“队友”或者是根据你定义的文本库来用接近自然语言的生成“语言”&#xff0c;推动游戏情景在受控范围内前进 目录 1. 自然语言处理定义 2. 发展历史 3. …

python源码:opencv多视频源同屏拼接播放

一、前言 如标题所示&#xff0c;这个python代码的目的是利用opencv模块实现多视频源同屏拼接播放的&#xff0c;里面包含视频播放尺寸修改、视频播放加序号、视频流存活检测等方案&#xff0c;可做扩展开发使用。 二、代码 import cv2 import time from func_timeout import …

结合Langchain来开发一个能够通过POST请求获取GPT回答的智能体

结合Langchain来开发一个能够通过POST请求获取GPT回答的智能体可以按照以下步骤进行。这个过程包括配置Langchain以利用外部API进行响应、设计流数据处理以及搭建一个简单的智能体来处理请求和回复。下面是一个详细的指南。 步骤 1: 安装必要的库 确保安装了Langchain和相关的…

Django 一对多关系

1&#xff0c;创建 Django 应用 Test/app9 django-admin startapp app9 2&#xff0c;注册应用 Test/Test/settings.py 3&#xff0c;添加应用路由 Test/Test/urls.py from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/,…

python遍历目录下所有文件

python遍历目录下所有文件 方法1&#xff1a;使用os.walk()函数递归遍历目录下所有文件。方法2&#xff1a;使用os.scandir()函数遍历目录下所有文件。方法3&#xff1a;使用os.listdir()函数遍历目录下所有文件。方法4&#xff1a;使用glob模块遍历目录下所有文件。方法5&…

嵌入式上gst rtsp server opencv mat

0 安装gstreamer sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-…

谷粒商城笔记-03-分布式基础概念

文章目录 一&#xff0c;微服务二&#xff0c;集群、分布式三&#xff0c;远程调用四&#xff0c;负载均衡五&#xff0c;服务注册、服务发现、注册中心六&#xff0c;配置中心七&#xff0c;服务熔断、服务降级1&#xff0c;服务熔断2&#xff0c;服务降级3&#xff0c;区别 八…

开始尝试从0写一个项目--后端(一)

创建文件的目录结构 利用这个界面创建 序号 名称 说明 1 SEMS maven父工程&#xff0c;统一管理依赖版本&#xff0c;聚合其他子模块 2 sems-common 子模块&#xff0c;存放公共类&#xff0c;例如&#xff1a;工具类、常量类、异常类等 3 sems-pojo 子模块&#x…