其他分享
首页 > 其他分享> > CF999B Reversing Encryption 题解

CF999B Reversing Encryption 题解

作者:互联网

Content

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

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

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

Solution

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

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

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;
}

标签:Reversing,遍历,int,题解,升序,因子,Encryption,字符串,操作
来源: https://www.cnblogs.com/Eason-AC/p/15716752.html