zoukankan      html  css  js  c++  java
  • Codefoces 436 B. Om Nom and Spiders


    纯属练习JAVA....

    B. Om Nom and Spiders
    time limit per test
    3 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Om Nom really likes candies and doesn't like spiders as they frequently steal candies. One day Om Nom fancied a walk in a park. Unfortunately, the park has some spiders and Om Nom doesn't want to see them at all.

    The park can be represented as a rectangular n × m field. The park has k spiders, each spider at time 0 is at some cell of the field. The spiders move all the time, and each spider always moves in one of the four directions (left, right, down, up). In a unit of time, a spider crawls from his cell to the side-adjacent cell in the corresponding direction. If there is no cell in the given direction, then the spider leaves the park. The spiders do not interfere with each other as they move. Specifically, one cell can have multiple spiders at the same time.

    Om Nom isn't yet sure where to start his walk from but he definitely wants:

    • to start walking at time 0 at an upper row cell of the field (it is guaranteed that the cells in this row do not contain any spiders);
    • to walk by moving down the field towards the lowest row (the walk ends when Om Nom leaves the boundaries of the park).

    We know that Om Nom moves by jumping. One jump takes one time unit and transports the little monster from his cell to either a side-adjacent cell on the lower row or outside the park boundaries.

    Each time Om Nom lands in a cell he sees all the spiders that have come to that cell at this moment of time. Om Nom wants to choose the optimal cell to start the walk from. That's why he wonders: for each possible starting cell, how many spiders will he see during the walk if he starts from this cell? Help him and calculate the required value for each possible starting cell.

    Input

    The first line contains three integers n, m, k (2 ≤ n, m ≤ 2000; 0 ≤ k ≤ m(n - 1)).

    Each of the next n lines contains m characters — the description of the park. The characters in the i-th line describe the i-th row of the park field. If the character in the line equals ".", that means that the corresponding cell of the field is empty; otherwise, the character in the line will equal one of the four characters: "L" (meaning that this cell has a spider at time 0, moving left), "R" (a spider moving right), "U" (a spider moving up), "D" (a spider moving down).

    It is guaranteed that the first row doesn't contain any spiders. It is guaranteed that the description of the field contains no extra characters. It is guaranteed that at time 0 the field contains exactly k spiders.

    Output

    Print m integers: the j-th integer must show the number of spiders Om Nom will see if he starts his walk from the j-th cell of the first row. The cells in any row of the field are numbered from left to right.

    Sample test(s)
    input
    3 3 4
    ...
    R.L
    R.U
    
    output
    0 2 2 
    input
    2 2 2
    ..
    RL
    
    output
    1 1 
    input
    2 2 2
    ..
    LR
    
    output
    0 0 
    input
    3 4 8
    ....
    RRLL
    UUUU
    
    output
    1 3 3 1 
    input
    2 2 2
    ..
    UU
    
    output
    0 0 
    Note

    Consider the first sample. The notes below show how the spider arrangement changes on the field over time:

    ...        ...        ..U       ...
    R.L   ->   .*U   ->   L.R   ->  ...
    R.U        .R.        ..R       ...
    
    

    Character "*" represents a cell that contains two spiders at the same time.

    • If Om Nom starts from the first cell of the first row, he won't see any spiders.
    • If he starts from the second cell, he will see two spiders at time 1.
    • If he starts from the third cell, he will see two spiders: one at time 1, the other one at time 2.


    import java.util.*;
    
    public class Main
    {
    	public static void main(String[] args)
    	{
    		Scanner cin=new Scanner(System.in);
    		int n=cin.nextInt(),m=cin.nextInt(),k=cin.nextInt();
    		String[] mp=new String[n];
    		for(int i=0;i<n;i++)
    			mp[i]=cin.next();
    		int[] ans=new int[m];
    		for(int i=0;i<n;i++)
    		{
    			for(int j=0;j<m;j++)
    			{
    				char c=mp[i].charAt(j);
    				if(c=='U')
    				{
    					if(i%2==0)
    						ans[j]++;
    				}
    				else if(c=='R')
    				{
    					int t=i+j;
    					if(t<m)
    						ans[t]++;
    				}
    				else if(c=='L')
    				{
    					int t=j-i;
    					if(t>=0)
    						ans[t]++;
    				}
    			}
    		}
    		StringBuilder RET=new StringBuilder();
    		for(int i=0;i<m;i++)
    		{
    			RET.append(ans[i]+" ");
    		}
    		System.out.println(RET);
    	}
    }



  • 相关阅读:
    springmvc 项目完整示例08 前台页面以及知识点总结
    springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
    springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
    springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用
    springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用
    springmvc 项目完整示例03 小结
    springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试
    springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目
    spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例
    spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7190999.html
Copyright © 2011-2022 走看看