zoukankan      html  css  js  c++  java
  • Zepto Code Rush 2014 B

    注意题目给的是一个nxm的park,设元素为aij,元素aij 有4种可能U(上移),D(下移),L(左移),R(右移)

    假设第i行第j列元素aij(注意元素的索引是从0开始的)

    当aij为D时,此时spiders一直往下移动不可能与Om Nom相遇

    当aij为U时,此时spiders向上移动时此时Norm与spider初始位置之间距离是i+1,注意索引是从0开始的

          如果i为偶数,i+1为奇数则两者必能在i/2位置相遇

          如果i为奇数,当Norm在i/2,sprider在i/2+1,移动时,Norm在jump不可能相遇

    当aij为R时,当Norm移动到第i行时此时aij右移已经到达ai(j+i)的位置,如果Norm从第i+j列向下移动则相遇

    当aij为L时,当Norm移动到第i行时此时aij左移已经到达ai(j-i)的位置,如果Norm从第j-i列向下移动则相遇

    注意边界处理

    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    
    using namespace std;
    
    int main(){
        int n,m,k;
        cin >> n >> m >> k;
        vector<string> park(n);
        for(int i = 0 ; i < n ; ++ i) cin >> park[i];
        vector<int> res(m,0);
        for(int i = 0 ; i < n; ++ i){
            for(int j = 0 ; j < m; ++ j){
                switch(park[i][j]){
                    case '.':
                    case 'D':
                        break;
                    case 'U':
                        if(i%2 == 0) res[j]++;break;
                    case 'R':
                        if(i+j < m) res[i+j]++;break;
                    case 'L':
                        if(j-i>=0) res[j-i]++;break;
                }
            }
        }
        for(int i = 0 ; i <m ; ++ i ){
            if(i) cout<<" ";
            cout<<res[i];
        }
        cout<<endl;
    
    }

    题目地址:http://codeforces.com/contest/436/problem/B

  • 相关阅读:
    HDFS文件操作(基本文件命令)
    <a> 标签
    css text-overflow
    zepto.js 打包自定义模块
    CSS3 box-sizing
    CSS3 Filter
    JQ 导出 Excel
    outline css2
    iphone 操作手势种类
    动手写一个简单的Web框架(模板渲染)
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3788676.html
Copyright © 2011-2022 走看看