zoukankan      html  css  js  c++  java
  • POJ 2339

    #include <iostream>
    #include <algorithm>
    #define MAXN 205
    using namespace std;
    
    char _m[MAXN][MAXN];
    
    char tem[MAXN][MAXN];
    
    bool cmp(char a,char b);
    
    int r;
    
    int c;
    
    void fun();
    
    
    bool cmp(char a,char b);
    
    int main()
    {
        //freopen("acm.acm","r",stdin);
        int i;
        int j;
        int test;
        int a = 0;
        cin>>test;
    
        int time;
        while(test --)
        {
            if(a != 0)
            cout<<endl;
            cin>>r>>c>>time;
            a = 1;
            for(i = 0; i < r; ++ i)
            {
                for(j = 0; j < c; ++ j)
                {
                    cin>>_m[i][j];
                }
            }
            for(i = 0; i < r; ++ i)
            {
                for(j = 0; j < c; ++ j)
                {
                    tem[i][j] = _m[i][j];
                }
            }
            for(i = 0; i < time; ++ i)
            {
                fun();
            }
            for(i = 0; i < r; ++ i)
            {
                for(j = 0; j < c; ++ j)
                {
                    cout<<_m[i][j];
                }
                cout<<endl;
            }
            
        }
            
    }
    
    void fun()
    {
        int i;
        int j;
        for(i = 0; i < r; ++ i)
        {
            for(j = 0; j < c; ++ j)
            {
                if(i + 1 < r)
                {
                    if(cmp(_m[i+1][j],_m[i][j]))
                    {
                        tem[i][j] = _m[i+1][j];
                        continue;
                    }
                }
                if(j + 1 < c)
                {
                    if(cmp(_m[i][j+1],_m[i][j]))
                    {
                        tem[i][j] = _m[i][j+1];
                        continue;
                    }
                }
                if(i - 1 >= 0)
                {
                    if(cmp(_m[i-1][j],_m[i][j]) )
                    {
                        tem[i][j] = _m[i-1][j];
                        continue;
                    }
                }
                if(j - 1 >= 0)
                {
                    if(cmp(_m[i][j-1],_m[i][j]))
                    {
                        tem[i][j] = _m[i][j-1];
                        continue;
                    }
                }
            }
        }
    
    
        for(i = 0; i < r; ++ i)
        {
            for(j = 0; j < c; ++ j)
            {
                _m[i][j] = tem[i][j];
            }
        }
        
    }
    
    bool cmp(char a,char b)
    {
        if(a == 'R' && b == 'S')
        {
            return true;
        }
        else if(a == 'R' && b == 'P')
        {
            return false;
        }
        else if(a == 'P' && b == 'R')
        {
            return true;
        }
        else if(a == 'P' && b == 'S')
        {
            return false;
        }
        else if(a == 'S' && b == 'P')
        {
            return true;
        }
        else if(a == 'S' && b == 'R')
        {
            return false;
        }
        return false;
    }
  • 相关阅读:
    C#中的Dictionary字典类介绍
    SQL server 2008r2 file is corrupt
    web service接口 wsdl和asmx有什么区别
    ascx
    C++: C++函数声明的时候后面加const
    C++三种野指针及应对/内存泄露
    C++构造和析构的顺序
    atan2()如何转换为角度
    C++11左值引用和右值引用
    C++ STL详解
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4568357.html
Copyright © 2011-2022 走看看