santisify Site

Back

Atcoder beginner contest 339Blur image

A TLD#

题目描述#

给定字符串s,输出字符串中.(点)后面的字符,若有多个.输出最后一个.的信息.

解题思路#

有多种解法,可以暴力循环一次,或者用find()函数查找

参考代码#

B Langton’s Takahashi #

题目描述#

给三个数n,mk,其中n m代表n * m的矩阵,k代表操作数 起始点在矩阵的(1,1),朝向为正上方 对于每次操作:

  1. 当前位置为. 则将当前位置改为# 并且向右转,向前走一步.
  2. 当前位置为# 则将当前位置改为. 并且向左转,向前走一步. 打印出矩阵作为结果

解题思路#

使用矩阵模拟下过程即可 对于样例3 4 5模拟下 初始状态x = 1, y = 1朝向正上方

............\begin{matrix} .&.&.\\ .&.&.\\ .&.&.\\ .&.&.\\ \end{matrix}

第一步,由于当前位置(1,1).那么就需要将当前位置变为#,并向右转,走一步到(1,2),朝向右

#...........\begin{matrix} \#&.&.\\ .&.&.\\ .&.&.\\ .&.&.\\ \end{matrix}

第二步,由于当前位置(1,2).那么就需要将当前位置变为#,并向右转,走一步到(2,2),朝向下

##..........\begin{matrix} \#&\#&.\\ .&.&.\\ .&.&.\\ .&.&.\\ \end{matrix}

第三步,由于当前位置(2,2).那么就需要将当前位置变为#,并向右转,走一步到(2,2),朝向左

##..#.......\begin{matrix} \#&\#&.\\ .&\#&.\\ .&.&.\\ .&.&.\\ \end{matrix}

第四步,由于当前位置(2,1).那么就需要将当前位置变为#,并向右转,走一步到(1,1),朝向上

##.##.......\begin{matrix} \#&\#&.\\ \#&\#&.\\ .&.&.\\ .&.&.\\ \end{matrix}

第五步,由于当前位置(1,1)#那么就需要将当前位置变为.,并向左转,走一步到(1,3),朝向左 ,此处能到(1,3)是因为矩阵相当于上下,左右连通的.

.#.##.......\begin{matrix} .&\#&.\\ \#&\#&.\\ .&.&.\\ .&.&.\\ \end{matrix}

最后就得到了这样的矩阵.对于朝向的转换就需要一定的技巧,合理运用模(mod)的运算.

参考代码#

Atcoder beginner contest 339
https://santisify.top/blog/old/abc339
Author santisify
Published at August 15, 2024
Comment seems to stuck. Try to refresh?✨