题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map,结果被出题说的卡map提醒了. 然后直觉告诉我可以hash相邻字母的距离,然后就这样做了... 代码: #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include&l…
很有意思的一道题目 考场上想的是HASH成一个整数,把末位asicc码值*1,依次乘*10,得到一个整数,然后利用等差性.唯一性快排Nlogn乱搞的 证明如下: 对于明文abcde 密文 bcdef 有(a-b)*10000+(b-c)*1000+(c-d)*100+(d-f)*10+(e-f)*1=一个常数 这个常数我们可以预处理出来,对于任意的f[a,b],a,b属于小写字母,我们都可以预处理出来其值 好吧就是这个考场上写挂了 预处理出来之后依次排序维护标号然后O(n)一遍过就好,哎傻了 C…
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/导航软件 题解:刚开始看见题目,这不是裸的分层图spfa吗? 于是开始写代码,读边的时候忽然发现居然还有红绿灯,我说不会这么简单的,那这题一定很神... 于是滚去做vijos 看了题解一口血喷出来啊... 事后想了想,貌似不管红绿灯什么事,走多少是多少?来的早至少不会比来得迟的过得晚... T_T 计算有红绿灯时通过的时间时需要好…
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/查错 题解:刚开始看见立马以为是 p1790拓扑编号,于是改了下输出就交了... 然后就爆零了... 仔细看题发现: 本题要求  尽早处理编号小的点 尽量使编号小的点最早被处理 难道不一样? 后来发现了 p1790的样例: 5 4 4 1 1 3 5 3 2 5 然后就明白了 对p1790来说,要想1号尽早被处理,第一次就得处理4…
拓扑排序,要让字典序最小,所以把栈改成堆. #include<cstdio> #include<queue> #include<algorithm> using namespace std; #define N 100001 priority_queue<int,vector<int>,greater<int> >Q; int n,m,x,y; int v[N],first[N],next[N],en,ru[N],tot,ans[N]…
Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ksmm{ public static void main(String[] args){ System.out.print("请输入密钥:"); Scanner s=new Scanner(System.in); int a=s.nextInt(); C(a); } public stati…
[CTF]凯撒密码 ---------------------  作者:___Blue_H  来源:CSDN  原文:https://blog.csdn.net/qq_37653144/article/details/80773548 概述 著名的凯撒密码是代换密码的一种,据说是罗马共和国末期的军事家.政治家,罗马帝国的奠基者凯撒率先使用加密函,因此这种加密方法被称为凯撒密码.凯撒密码的原理很简单:通过把字母移动一定的位数来实现加解密.明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进…
一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B,C 3,为了传递信息,应该只加密英文字母,对于无意义的空格等字符不应加密 程序流程图 源程序代码 /** * */ package 课堂4; import java.util.Scanner; /** * @author 信1605-3吴鑫20163471 */ public class Ceas…
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 使用JAVA程序实现对明文的加密: package com.qikeyishu.www; public class Kaisapwd { public static void main(String[] args) { char str[]={'a','b'…
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detail:凯撒密码 } ''' def kaisa(lstr): returnStr = '' for p in range(127): str1 = '' for i in lstr: temp = chr((ord(i)+p)%127) if 32<ord(temp)<127 : str1 = st…