Do the Untwist
Do the Untwist
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 982 Accepted Submission(s): 638
Problem Description
| Array | 0 | 1 | 2 |
| plaintext | 'c' | 'a' | 't' |
| plaincode | 3 | 1 | 20 |
| ciphercode | 3 | 19 | 27 |
| ciphertext | 'c' | 's' | '.' |
Sample Input
5 cs.
101 thqqxw.lui.qswer
3 b_ylxmhzjsys.virpbkr
0
Sample Output
cat
this_is_a_secret
beware._dogs_barking 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1129 题目意思很简单,倒推明文;题目给出的例子是:【cat --> cs.】
第一步:把cat转化成对应数字 plaincode,文中有提到,_=0, .=27, a=1 ...【cat --> 3,1,20】
第二步:利用公式将 plaincode转化成密文对应的数字 ciphercode【3,1,20 --> 3,19,27】
第三步:将 ciphercode转化成密文 【3,19,27 --> cs.】
题目给出密匙k和密文,要求求出明文; 此题最关键的是公式的转化!
公式如下:
明文-->密文:ciphercode[i] = (plaincode[ki mod n] - i) mod 28.
密文-->明文:plaincode[ki mod n] = (ciphercode[i] + i) mod 28.![]()
#include<stdio.h>
#include<string.h>
int main()
{
char s[],b[];
int i,j,n,k;
while(scanf("%d",&k),k)
{
scanf("%s",s);
n=strlen(s);
for(i=;i<n;i++)
{
if(s[i]=='_')
s[i]=;
else if(s[i]=='.')
s[i]=;
else
s[i]=s[i]-'a'+;
}
for(i=;i<n;i++)
{
b[k*i%n]=(s[i]+i)%;
}
for(i=;i<n;i++)
{
if(b[i]==)
printf(".");
else if(b[i]==)
printf("_");
else
printf("%c",b[i]+'a'-);
}
printf("\n");
}
return ;
}
Do the Untwist的更多相关文章
- 1006 Do the Untwist
考察编程基础知识,用到字符和数字相互转化等.形式是描述清楚明文和暗文的转化规则. #include <stdio.h> #include <string.h> #define ...
- ZOJ 1006:Do the Untwist(模拟)
Do the Untwist Time Limit: 2 Seconds Memory Limit: 65536 KB Cryptography deals with methods of ...
- Do the Untwist(模拟)
ZOJ Problem Set - 1006 Do the Untwist Time Limit: 2 Seconds Memory Limit: 65536 KB Cryptography ...
- ZOJ Problem Set - 1006 Do the Untwist
今天在ZOJ上做了道很简单的题目是关于加密解密问题的,此题的关键点就在于求余的逆运算: 比如假设都是正整数 A=(B-C)%D 则 B - C = D*n + A 其中 A < D 移项 B = ...
- [ZOJ 1006] Do the Untwist (模拟实现解密)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 ...
- ACM/ICPC ZOJ1006-Do the Untwist 解题代码
#include <iostream> #include <string> #include <stdlib.h> using namespace std; int ...
- ZOJ1006 Do the Untwist
简单模拟~ #include<bits/stdc++.h> using namespace std; ; int a[maxn]; unordered_map<char,int> ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
随机推荐
- sql语句中变量的写法
$sql = "update cat set num=num+1 where cat_id=$art[cat_id]"; $sql = "update ca ...
- 修改chrome背景色
参考:http://blog.csdn.net/jvortex/article/details/73895288 1.新建一个文件夹,比如customcss,包含custom.css和manifest ...
- css垂直居中几种方法(二)
方法1:table-cell .box1{ display: table-cell; vertical-align: middle; text-align: center; } <div cla ...
- myEclipse注册码地址2019年最新
myEclipse注册码地址2019年最新 https://www.sojson.com/myeclipse8.5/
- zabbix 报警程序
一,报警程序 本次使用的为onealert http://c.onealert.com/console/ucid/login.jsp 二,服务端安转 下面为他教的怎么安装这个东西 第一步: 找到脚本目 ...
- 第十五章:集成JPUSH
如果不想自己搭建push server,则可以借助于第三方的api来实现push的功能,本文主要介绍ionic如何集成jpush. 具体步骤如下: 创建ionic应用:ionic_jpush. 申请j ...
- Ubuntu(Linux) 下 zip 命令使用详解
1.功能作用:压缩文件或者目录 2.位置:/usr/bin/zip 3.格式用法:zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfi ...
- Oracle中查询关键字select--from--where--group by--having--order by执行顺序
select--from--where--group by--having--order by 这6个查询关键字的执行顺序: 1.from组装来自不同数据源的数据:2.where基于指定的条件对记录行 ...
- 对key中有数字的字典进行排序
word_cloud = []cc = [{"c58":341,"c59":525,"c56":507,"c57":34 ...
- Java网络编程三--基于TCP协议的网络编程
ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状体 Socket accept():如果接收到客户端的连接请求,该方法返回一个与客户端对应Socket ...