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奇怪的星球的主要内容,如果未能解决你的问题,请参考以下文章