P1079 [NOIP 2012 提高组] Vigenère 密码 题解
Dijkstra_zyl · · 题解
P1079 [NOIP 2012 提高组] Vigenère 密码 题解
#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