codevs 2287 火车站
2287 火车站
火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定的规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n-1站),都满足此规律。现给出的条件是:共有N个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问从x站开出时车上的人数是多少?若无解输出“No answer.”(所有数据均在longint范围内)
a,n,m和x
x站开出时车上的人数
1 6 7 3
2
无
分类标签 Tags
/*
好几个月之前做的一道题了,枚举+递推,超级恶心
*/
#include<iostream>
#include<cstdio>
using namespace std;
int a,n,m,x;
bool b;
struct node{int up,tot;}f[];
int main()
{
cin>>a>>n>>m>>x;
f[].up=a;f[].tot=a;
f[].tot=a;f[n].tot=m;
f[n].up=;
for(int k=;k<=m;k++)
{
f[].up=k;
for(int i=;i<n;i++)
{
f[i].up=f[i-].up+f[i-].up;
f[i].tot=f[i-].tot+f[i].up-f[i-].up;
}
if(f[n-].tot==m)
{
printf("%d",f[x].tot);
b=true;
return ;
}
}
if(!b)printf("No answer.\n");
return ;
} //第一次做的时候的代码:
#include<iostream>
#include<cstdio>
using namespace std;
int a,n,m,x;
bool b;
struct car
{
int up;
int down;
int tot;
}f[];
int main()
{
cin>>a>>n>>m>>x;
f[].up=a;
f[].tot=a;
f[].tot=a;
f[n].tot=m;
f[n].up=;
for(int k=;k<=m;k++)
{
f[].up=k;
for(int i=;i<n;i++)
{
f[i].up=f[i-].up+f[i-].up;//A
//f[i].down=f[i-1].up;B
//f[i].tot=f[i-1].tot+f[i].up-f[i].down;C
f[i].tot=f[i-].tot+f[i].up-f[i-].up;//D<--C(B)
}
if(f[n-].tot==m)
{
cout<<f[x].tot;
b=true;
return ;
}
}
if(!b)
cout<<"No answer.";
return ;
}
codevs 2287 火车站的更多相关文章
- 火车站(codevs 2287)
题目描述 Description 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数 ...
- NOIP 车站分级 (luogu 1983 & codevs 3294 & vijos 1851) - 拓扑排序 - bitset
描述 一条单向的铁路线上,依次有编号为 1, 2, ..., n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...
- T2821 天使之城 codevs
http://codevs.cn/problem/2821/ 题目描述 Description 天使城有一个火车站,每辆火车都从A方向驶入车站,再从B方向驶出车站. 为了调度火车,火车站设有停放轨道, ...
- T1683 车厢重组 codevs
http://codevs.cn/problem/1683/ 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题目描述 Description 在一个旧式的火车 ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
随机推荐
- LoadRunner免费公开课,惠普金牌讲师亲授
[开课时间]:9月13日 下午2:00—4:00(暂定)[活动费用]:免费[主办单位]:慧都学院[课程形式]:网络在线公开课 LoadRunner简介惠普软件测试解决方案LoadRunner测试实例答 ...
- Android任务栈的运行规律
一:前台栈表示应用A,后台栈则是应用B 前台栈/taskAffinity/launchMode 后台栈/taskAffinity/launchMode ActivityB/com.lpn.teston ...
- swift-可选值
swift的nil和OC有些不一样,OC只有对象可以用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift可以没有初始值的,产生了可选值Optional. 定义可选值 ...
- Highchart基础教程-图表的主要组成
一.Highchar图表的主要组成 1.图表标题(Title):图表包含标题和副表题(subTitle,可选). 2.坐标轴(Axis):包括x轴(xAxis)和y轴(yAxis).多个数据列可以共同 ...
- 关于case语句中声明变量并初始化的注意事项
今天看到一句对这个问题特别精辟的总结,记录如下: It is possible to transfer into a block, but not in a way that bypasses dec ...
- Oracle hint
1.use_concat 网上说法: CONCATENATION和UNION/UNION ALL操作比较类似,根据OR查询条件,将一个查询分解为两个或更多的部分,然后在去掉两个部分重复的记录.由于CO ...
- Web系统性能测试术语简介
并发用户 并发一般分为两种情况.一种是严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作.这种操作一般指做同一类型的业务,比如在信用卡审批业务中,一定数目的用户在同一时刻对已经完成的审批业务 ...
- Windows Server 2012 虚拟化实战:网络(一)
虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如Virtual PC或者Virtual Box的经验.使用的这些虚拟化软件的第一印象就是我们的CPU可以同时运行多套不同的操作系统,并且其 ...
- 简单配置 nginx 反向代理
# Nginx 域名反向代理配置# 安装nginx yum install nginx -y# 修改配置文件 进入配置文件目录 cd /etc/nginx/conf.d 新建配置文件以.conf结尾 ...
- WPF SpreadSheetGear电子表单
我们经常会碰到生成Excel 界面并在其上操作的功能开发. 比如如下界面,我们需要在菜单里添加一个菜单按钮"Columns To Rows Transform" 功能是对多列批量转 ...