zoukankan      html  css  js  c++  java
  • 洛谷 P1011 车站

    题目描述

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

    输入输出格式

    输入格式:

    a(<=20),n(<=20),m(<=2000),和x(<=20),

    输出格式:

    从x站开出时车上的人数。

    输入输出样例

    输入样例#1:
    5 7 32 4
    
    输出样例#1:
    13
    

    思路稍稍有点难理解,小小数学题:

    >f[1]=a
    >f[2]=b
    >f[3]=1b+a
    >f[4]=2b+a
    >f[5]=3b+2a
    >f[6]=5b+3a

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <string>
     6 using namespace std;
     7 int main()
     8 {
     9     int a,b,n,m,x,fibo[21]={0};
    10     scanf("%d%d%d%d",&a,&n,&m,&x);
    11     fibo[0]=0;fibo[1]=1;
    12     for(int i=2;i<=n;i++)
    13         fibo[i]=fibo[i-1]+fibo[i-2];
    14     b=(m-(fibo[n-3]+1)*a)/(fibo[n-2]-1);
    15     printf("%d",(fibo[x-1]-1)*b+(fibo[x-2]+1)*a);
    16 }
     


  • 相关阅读:
    eclipse
    一次性验证码
    mybatis。逆向工程
    mybatis02.动态sql
    mybatis01
    plsql
    HDU.2149 Public Sale (博弈论 巴什博弈)
    HDU.1846 Brave Game (博弈论 巴什博弈)
    博弈论快速入门
    HUD.2795 Billboard ( 线段树 区间最值 单点更新 单点查询 建树技巧)
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/6875579.html
Copyright © 2011-2022 走看看