ZOJ 1006 Do the Untwish

Do the Untwish

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1006

题意:给定密文按公式解密

注意点:pcode = (ccode + i)%28;的使用

贴代码:

 1 //Problem Name: Do the Untwish
 2 //Source: ZOJ 1006
 3 //Author: jinjin18
 4 //Main idea: easy to solve
 5 //Language: C++
 6 //======================================================================
 7 #include<stdio.h>
 8 #include<string.h>
 9 #include<map>
10 using namespace std;
11
12 map<char,int> mp;
13
14
15 void init(){
16     mp[‘_‘] = 0;
17     mp[‘.‘] = 27;
18     for(int i = 97; i < 97+26; i++){
19         mp[i] = i - 96;
20     }
21     return;
22 }
23
24 char Findchar(int v){
25     if(v==0){
26         return ‘_‘;
27     }
28     if(v==27){
29         return ‘.‘;
30     }
31     if(v<27&&v>0){
32         return v + 96;
33     }
34     return ‘\0‘;
35 }
36 int main(){
37
38     init();
39     int k;
40     char ptext[100];
41     char ctext[100];
42     while(scanf("%d",&k)!=EOF && k !=0 ){
43         scanf("%s",ctext);
44         int n = strlen(ctext);
45         ptext[n] = ‘\0‘;
46         for(int i = 0; i < n; i++){
47             int ccode = mp[ctext[i]];
48             //printf("%d ",ccode);
49             //int pcode = ccode < 28-i? ccode+i:ccode - 28 + i;
50             int pcode = (ccode + i)%28;   //写成上面那行i超过28时会出错
51             //printf("%d\n",pcode);
52             ptext[(k*i)%n] = Findchar(pcode);
53
54
55         }
56         printf("%s\n",ptext);
57     }
58     return 0;
59
60 }

原文地址:https://www.cnblogs.com/jinjin-2018/p/8976804.html

时间: 2024-10-17 09:27:58

ZOJ 1006 Do the Untwish的相关文章

[ZOJ 1006] Do the Untwist (模拟实现解密)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 1 #include <cstdio> 2 #include <cstdlib> 3 #include <string> 4 #include <iostream> 5 #include <cstring> 6 #include <algori

九度OJ 1006 ZOJ问题 (这题測试数据有问题)

题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15725 解决:2647 题目描写叙述: 对给定的字符串(仅仅包括'z','o','j'三种字符),推断他能否AC. 是否AC的规则例如以下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC.当中x能够是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC.当中a,b,c为N个'o'或者为空: 输入: 输入包括多组測试用例,每行有一个仅仅包括'z','o','j'三种字

九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题

题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:16244 解决:2742 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC.是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空: 输入: 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,

九度OJ 1006 ZOJ

#include <iostream> #include <string> using namespace std; int getO(string str,int &start,char ch) { int count=0; for(;start<str.length();start++) { if(str[start] == 'o') { count++; } else if(str[start]==ch) { start++; return count; } e

题目1006:ZOJ问题

题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空: 输入: 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000. 输出: 对于给定的字符串,如果能AC则请输出字符串"Accepted"

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

zoj能AC

题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空: 输入: 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000. 输出: 对于给定的字符串,如果能AC则请输出字符串"Accepted"

zoj题目分类

饮水思源---zoj 转载自:http://bbs.sjtu.edu.cn/bbscon,board,ACMICPC,file,M.1084159773.A.html 注:所有不是太难的题都被归成了“简单题”,等到发现的时候已经太晚了,我太死脑筋 了……:( 有些题的程序我找不到了,555……:( SRbGa的题虽然都很经典……但是由于其中的大部分都是我看了oibh上的解题报告后做 的,所以就不写了…… 题目排列顺序没有规律……:( 按照个人感觉,最短路有的算做了DP,有的算做了图论. 有些比较

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1