Content

给一个长度为 \(n\) 的字符串 \(s\),执行以下操作:

  • 降序遍历 \(n\) 的所有因子(从 \(n\) 到 \(1\))。
  • 对于每一个因子 \(i\) 翻转字符串 \(s_{[1,i]}\)。

现在给出操作后的字符串,求原字符串。

数据范围:\(1\leqslant n\leqslant 100\)。

Solution

既然原来的操作是降序遍历因子,那么还原的时候不正是升序遍历因子吗?所以,按照逆推的思想,我们可以按照下面的操作模拟:

  • 升序遍历 \(n\) 的所有因子(从 \(1\) 到 \(n\))。
  • 对于每一个因子 \(i\) 翻转字符串 \(s_{[1,i]}\)。

操作完以后的字符串就是我们想要的原字符串了。

Code

int n;
string s; int main() {
getint(n); cin >> s;
_for(i, 2, n) {
if(!(n % i))
for(int l = 0, r = i - 1; l <= r; ++l, --r)
swap(s[l], s[r]);
}
cout << s;
return 0;
}

最新文章

  1. nodeType的返回
  2. 一段能导致火狐、谷歌Safari浏览器崩溃,甚至让iPhone重启的代码
  3. 利用BMFont和NGUI制作字体集
  4. recycleview + checkbox 实现单选
  5. linux安全
  6. LeetCode38 Count and Say
  7. sql2008_x64 读取excel
  8. Linux用户与用户组的详解
  9. vim-配置文件
  10. nodejs 语法学习(持续更新)
  11. Android与Linux内核的对应关系
  12. mpvue——引入antv-F2图表
  13. http stream
  14. Python 练习: 简单角色游戏程序
  15. 被弃用的php函数以及被那个代替
  16. django的类视图-11
  17. mysql的force index
  18. BigDecimal常用方法
  19. HDUOJ------------1051Wooden Sticks
  20. 程序编译是出现&quot;field has incomplete type&quot;问题的解决

热门文章

  1. AOP声明式事务
  2. Java异常与错误
  3. 压力测试工具——apchebench(简称ab)
  4. Deep Learning(深度学习)整理,RNN,CNN,BP
  5. 01 eclipse搭建maven的web工程(3.1)
  6. typedef定义数组
  7. A Child&#39;s History of England.4
  8. 【1】Embarrassingly Parallel(易并行计算问题)
  9. C++构造函数和析构函数初步认识(2)
  10. Java发HTTP POST请求(内容为xml格式)