ACM-FZUoj2009-1573解题报告

新浪博客 发表时间 -- 2009-07-27 20:13:25

大学自习室

  算法:

       这道题我做了好久....一直被误导着ACM-FZUoj2009-1573解题报告....题目要求找座位,找出Roam满足的座位,给出了三个条件..

  1. 旁边有另一个空座位,可以是左边,也可以是右边(放书包用的...);
  2. 为了环境相对稳定,满足要求1的同时,Roam的座位必须是离两边过道最远的;
  3. 在教室的最后一排 (-__-!)。

然后有约定了几个条件:

  1. 只考虑教室最后一排中间部分的座位,两边就是过道;
  2. 每个座位都有一个编号,若有N(1<=N<=50)个座位,则座位编号从左到右依次为 0,1,2,…,N-1.
  3. 输入数据使用一个长度等于座位数的字符串 Seat 表示,字符串中的每一个字符对应一个座位的状态,其中的E(大写字母)表示座位没人,P(大写字母)表示座位已经有人了。

  

数据输入

输入包括多组数据。
每组数据输入数据的第一行是一个数字N,(1<=N<=50),表示该教室最后一排有N个座位。第二行是一个字符串,表示字符串seat。

输出数据

对于每组输出数据,输出只有一行,即为你所找到的座位的编号。如果有多个符合条件的座位,则仅输出其中编号最小的那个。

  • 如果有多个符合条件的座位,则仅输出其中编号最小的那个;
  • 如果不存在这样的座位,输出-1。

算法:

    1.先用数组接收字符串,再把数组赋给已赋初值的的数组,存储接收的字符。。。

    2.以座位旁必须有空座位为条件(我就是被这个给害的,当只有‘E’时也输出0了,但它应该输出的是-1),当数组里有两个相邻元素都为‘E’时,就把为‘E’的两个位置记录下来,分别存放到另一个数组,数组下标对应位置值。。

    3.设置一个变量p=0,来和前面出现‘E’的位置一起与中点相减取绝对值比较,即fabs(b[i]-(k-1)/2)<fabs(p-(k-1)/2),k为数组长度,p就是变量了,如果为真的话就把p=b[i],然后输出p..

   4.特殊情况,当测试数据为‘E’'E'时要输出0..

代码:

   暂时存起来...有需要的朋友给我留言.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值