第十二周周四总结

  这几天就是简单的看的树状dp的知识点,专题的A题挺简单的。。。不过就是因为一些小问题错了两次。。还PE了一次。

  然后做了两道题,今天中午看了一中午的题解才把S题做出来,G题也不应该错的。。意思想到了,就是把取余想成相除取整了。。。一直没发现。

  昨天的训练赛A题找规律,打了个表就看出规律是6个一循环了,最后那道F题就无语了,感觉就是道简单的模拟题,本以为是水题,没想到从头写到结束,一直卡在测试样例8,从网上后来从网上找了题解,感觉差不多,还是没找出哪里有漏的条件,还有这道题有坑,说是范围1-100,1-1000,然后我把数组开到105,1050,在样例4RE了,然后改到155,1505,然后就对了,可能是有一组测试样例超出范围了吧。。把F题的代码贴出来吧,简单的模拟,就是不知道哪里错了


CodeForces - 250E

Joe has been hurt on the Internet. Now he is storming around the house, destroying everything in his path.

Joe's house has n floors, each floor is a segment of m cells. Each cell either contains nothing (it is an empty cell), or has a brick or a concrete wall (always something one of three). It is believed that each floor is surrounded by a concrete wall on the left and on the right.

Now Joe is on the n-th floor and in the first cell, counting from left to right. At each moment of time, Joe has the direction of his gaze, to the right or to the left (always one direction of the two). Initially, Joe looks to the right.

Joe moves by a particular algorithm. Every second he makes one of the following actions:

  • If the cell directly under Joe is empty, then Joe falls down. That is, he moves to this cell, the gaze direction is preserved.
  • Otherwise consider the next cell in the current direction of the gaze.
    • If the cell is empty, then Joe moves into it, the gaze direction is preserved.
    • If this cell has bricks, then Joe breaks them with his forehead (the cell becomes empty), and changes the direction of his gaze to the opposite.
    • If this cell has a concrete wall, then Joe just changes the direction of his gaze to the opposite (concrete can withstand any number of forehead hits).

Joe calms down as soon as he reaches any cell of the first floor.

The figure below shows an example Joe's movements around the house.

Determine how many seconds Joe will need to calm down.

Input

The first line contains two integers n and m (2 ≤ n ≤ 100, 1 ≤ m ≤ 104).

Next n lines contain the description of Joe's house. The i-th of these lines contains the description of the (n - i + 1)-th floor of the house — a line that consists of m characters: "." means an empty cell, "+" means bricks and "#" means a concrete wall.

It is guaranteed that the first cell of the n-th floor is empty.

Output

Print a single number — the number of seconds Joe needs to reach the first floor; or else, print word "Never" (without the quotes), if it can never happen.

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

Example
Input
3 5
..+.#
#+..+
+.#+.
Output
14
Input
4 10
...+.##+.+
+#++..+++#
++.#++++..
.+##.++#.+
Output
42
Input
2 2
..
++
Output
Never
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int n,m;
char mapp[155][1505];
int main()
{
int i,j,flag,view;
long long s;
while(cin>>n>>m)
    {
    memset(mapp,'#',sizeof(mapp));
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            cin>>mapp[i][j];
    i=j=1;
    view=1;
    flag=0;
    s=0;
    while(1)
        {
        if(flag==2||i==n)
            break;
        if(mapp[i+1][j]=='.')
            {
            flag=0;
            i++;
            s++;
            }
        else  if(mapp[i][j+view]=='#')
                {
                view*=-1;
                flag++;
                s++;
                }
        else if(mapp[i][j+view]=='+')
                {
                flag=0;
                mapp[i][j+view]='.';
                view*=-1;
                s++;
                }
        else if(mapp[i][j+view]=='.')
                {
                j+=view;
                s++;
                }
        }
    if(flag==2)
        cout<<"Never"<<endl;
    else
        cout<<s<<endl;
    }
return 0;
}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值