博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2287 火车站
阅读量:4509 次
发布时间:2019-06-08

本文共 1172 字,大约阅读时间需要 3 分钟。

题目链接:http://codevs.cn/problem/2287/
题目描述 
Description

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

输入描述 
Input Description

a,n,m和x

输出描述 
Output Description

x站开出时车上的人数

样例输入 
Sample Input

1 6 7 3

样例输出 
Sample Output

2

数据范围及提示 
Data Size & Hint

 算法分析:

假设第2站上车人数y,下车人数也是y。根据题目意思可以有如下表格:

观察发现上车、下车人数这两行里面a和y的系数分别独自形成斐波那契数列。

所以,定义结构体struct  obj,含两个成员项p和q分别表示a和y的系数。

最后一个车站下车人数m等于第n-1个车站出发的人数。上表中有6a+7y=m,已知a即可求得y。若y为整数则有解,若y不为整数则无解。

若是有解则可以根据y计算第x个车站出发时的人数。具体参考代码: 

1 #include 
2 #include
3 struct obj 4 { 5 int p,q; 6 }; 7 int main() 8 { 9 struct obj up[25],down[25],sum[25];10 int i,a,m,n,x;11 int y,ans;12 scanf("%d%d%d%d",&a,&n,&m,&x);13 14 up[1].p=1; up[1].q=0;15 up[2].p=0; up[2].q=1;16 17 down[1].p=0; down[1].q=0;18 down[2].p=0; down[2].q=1;19 20 sum[1].p=1; sum[1].q=0;21 sum[2].p=1; sum[2].q=0;22 23 for(i=3;i

 

转载于:https://www.cnblogs.com/huashanqingzhu/p/8409968.html

你可能感兴趣的文章
python中的可迭代对象与迭代器
查看>>
WebKit的已实施srcset图像响应属性
查看>>
suggestion开发小结以及 对键盘事件的总结(针对中文输入法状态)
查看>>
Nio Client
查看>>
数据库 chapter 16 XML数据库
查看>>
spring mvc jsp运行不起来的问题
查看>>
大数据概述
查看>>
SpringBoot 密码MD5加密
查看>>
Mac MySQL启动不了解决办法(MySQL卸载重新安装教程)
查看>>
连通块
查看>>
servlet.txt笔记
查看>>
jquery设置select选中
查看>>
今天说一下DML触发器的顺序
查看>>
Memcached学习(一)--网络模型
查看>>
FragmentTransaction add 和 replace 区别 转
查看>>
jQuery 效果方法
查看>>
STM32物联网通信WIFI
查看>>
java反射案例详解
查看>>
MAGENTO 与 reindexer
查看>>
数字,字符串,列表及其内置方法
查看>>