专栏文章

P1079 [NOIP 2012 提高组] Vigenère 密码 题解

P1079题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minbs22x
此快照首次捕获于
2025/12/01 23:49
3 个月前
此快照最后确认于
2025/12/01 23:49
3 个月前
查看原文

P1079 [NOIP 2012 提高组] Vigenère 密码 题解

CPP
#include <iostream>
using namespace std;
int main(){
	string k,m; cin >> k >> m;
	for(int i = 0;i < m.size();i++){
		int t = (k[i%k.size()] & 31) - 1;
		m[i] = (m[i]&31) - t > 0 ? m[i] - t : m[i] - t + 26; 
	}
	cout << m;
	return 0;
}
//&31 得到的是在ASCII表中的位置
//如果k_i大 就要+26

评论

0 条评论,欢迎与作者交流。

正在加载评论...