SDMUOJ-P22sdutoj奇怪的星球

Posted 江上舟摇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDMUOJ-P22sdutoj奇怪的星球相关的知识,希望对你有一定的参考价值。

 

 

 

 (这个题怎么在新生赛的时候就没做出来,好水)狗头保命

开学第一次写博客,其实昨天正式开学已经做了两道题了,只不过很水,这个题还是比较有学习意义的,其实是模拟题,思路较为清晰:

如果碰到\'.‘就与\'a\'交换位置就好了,这就需要不断的交换上下的位置,此处需要一个while来完成,以满足不断交换的需求。

参考代码及注释如下(目前还未找到优化方法)

 #include<bits/stdc++.h>
 using namespace std;
 int main()
 
     char ch[50000][10];
     int r,c;
     ios::sync_with_stdio(false);
     cin>>r>>c;
     for(register int i=0;i<r;i++)
     
         for(register int j=0;j<c;j++)
         
             cin>>ch[i][j];
         
     
     for(register int i=0;i<r;i++)
     
         for(register int j=0;j<c;j++)
         
             if(ch[i][j]==\'.\')//如果是\'.\'并且下一层是\'a\',其实可以合并为一个if,只不过我看着这样舒服 
             
                 if(ch[i+1][j]==\'a\')
                 
                     int temp=i;//需要用一个临时的变量来储存i,否则就会乱套 
                     while(temp>=0&&ch[temp][j]==\'.\')//循环到第0层并且如果这个坐标的字符是\'.\' 
                     
                         ch[temp][j]=\'a\';
                         ch[temp+1][j]=\'.\';//交换位置 
                         temp--;//到上一层 
                     
                 
             
         
     
         for(register int i=0;i<r;i++)
     
         for(register int j=0;j<c;j++)
         
             cout<<ch[i][j];
         
         cout<<endl;
     
     return 0;
 

 

戒骄戒躁,任重道远

以上是关于SDMUOJ-P22sdutoj奇怪的星球的主要内容,如果未能解决你的问题,请参考以下文章

SDUTOJ 2475 Power Strings

SDUTOJ 2772 KMP简单应用

SDUTOJ 2712 5-2 派生类的构造函数

SDUTOJ懒虫小鑫

SDUTOJ 贪心 -商人小鑫

SDUTOJ 2711 4-2 电子时钟中的运算符重载