NYOJ题目768移位密码】的更多相关文章

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtIAAAJqCAIAAACJkTDlAAAgAElEQVR4nO3du3Ljvpa34b4J574Qx7…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAs4AAAIUCAIAAACFKz0yAAAgAElEQVR4nO3dPXLruLaG4TsJ5RqIYw…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsQAAAJYCAIAAADqk2fsAAAgAElEQVR4nO3dPVLrytbG8XcS5AyEWA…
移位密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:0   描述 移位密码是最简单的一类代替密码,具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模运算. 现给你一串密文,全部由大写字母组成.已知加密过程为:将每个字母按照字母表的顺序右移k位. 加密函数:E(m)=(m+k)%q. 请破译出明文!   输入 输入包含多组测试数据(少于1000组).每组数据包含一个字符串和一个整数k(k<26),中间用空格隔开,字符串全部由大写字母组成,长度小于50…
仿射密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 ->   Link   <- 和乘数密码差不多: 加密算法:Ek(m)=(k1*m+k2)%q;gcd(k1,q)=1; 解密算法:Dk(c)=k1^-1(c-k2)%q;k1^-1为k1在模q下的乘法逆元: 注意:k1为1时,相当于移位密码,当k2为0时相当于乘数密码:k1,k2同时为(1,0)时无效: 关键也在求逆元,在这里完全可以暴力解了: #include<bits/stdc++.h> usi…
移位密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 ->   Link   <- 还有1个半小时考信息安全导论,昨晚心血来潮在oj上看到这几个题,简直就是水啊,完全可以暴力,我想出题人能不能专业一点用逆元解,这样还更有利: 当然这个题不用逆元,最简单的代替密码了,好像书上提过的最早出现的凯撒密码(公元前一世纪,古罗马皇帝) 加密公式:Ek(m)=(m+k)%q; 解密公式:Dk(c)=  (c-k)%q; 说白了就是明文左移多少位,密文再右移回来就是了: #inc…
移位密码 加密C=Ek(m)=m+k mod 26 解密m=Dk(m)=c-k mod 26 密钥空间|k|=26=|c|=|m| #include<iostream> #include<cstdio> #include<cstdlib> #include<map> #include<string> using namespace std; map<char,int>letter; void init() { ;i<=;i++)…
描述 今天发现了nyoj,如获至宝.准备开刷. 括号配对问题 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组.数据保证S中只含有"[","]","(",")"四种字符 输出 每组输入数据的输出占一行,如果该字符串中所含的括号是…
--------------------------------------------- 这道题有点坑,也怪我总是有点马虎,按照正常人的思维0是表示有水池啊竟然是1表示有水池,最坑的是写反了竟然还能过样例一直以为是自己程序问题review了好多遍.... 图论基础题,染色法即可. AC代码: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new…