【百炼oj】2039:反反复复

原创 2018年04月15日 09:04:37

描述

Mo和Larry发明了一种信息加密方法。他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一些随机字母使其成为一个完整的字母矩阵。例如,若信息是“There's no place like home on a snowy night”并且有5列,Mo会写成:

t o i o y
h p k n n
e l e a i
r a h s g
e c o n h
s e m o t
n l e w x

注意Mo只会填入字母,且全部是小写形式。在这个例子中,Mo用字母“x”填充了信息使之成为一个完整的矩阵,当然他使用任何字母都是可以的。

Mo根据这个矩阵重写信息:首先从左到右写下第一行,然后从右到左写下第二行,再从左到右写下第三行……以此左右交替地从上到下写下各行字母,形成新的字符串。这样,例子中的信息就被加密为:toioynnkpheleaigshareconhtomesnlewx。

你的工作是帮助Larry从加密后的信息中还原出原始信息(包括填充的字母)。

输入第一行包含一个整数(范围2到20),表示使用的列数。
第二行是一个长度不超过200的字符串。输出一行,即原始信息。样例输入
5
toioynnkpheleaigshareconhtomesnlewx
样例输出
theresnoplacelikehomeonasnowynightx
来源East Central North America 2004
#include<stdio.h>
#include<string.h>
#define p 210
int main(){
    char str[p],temp;
    int n,i,j,k,h,l;
    scanf("%d\n",&n);
    gets(str);
    k=strlen(str);
    l=k/n;
    char str0[l][n];
    for(j=0;j<l;j++){
        for(h=0;h<n;h++)
            str0[j][h]=str[j*n+h];
        }
    for(j=0;j<l;j++){
            if(j%2==0);
            else{
                for(h=0;h<(int)n/2;h++){
                    temp=str0[j][n-1-h];
                    str0[j][n-1-h]=str0[j][h];
                    str0[j][h]=temp;
                }
            }
        }
        for(h=0;h<n;h++){
            for(j=0;j<l;j++)
               printf("%c",str0[j][h]);
        }
}

百炼OJ:2801:填词

Alex喜欢填词游戏。填词是游戏是一个非常简单的游戏。填词游戏包括一个N * M大小的矩形方格盘和P个单词。玩家需要把每个方格中填上一个字母使得每个单词都能在方格盘上找到...
  • Kangyucheng
  • Kangyucheng
  • 2017-07-18 21:30:17
  • 223

百炼OJ1007

描述 现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。 逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATC...
  • u014079441
  • u014079441
  • 2016-01-15 14:50:34
  • 588

OJ百练1001

#include #include #include using namespace std; string strMultiplies(const string& str1, const s...
  • a363344923
  • a363344923
  • 2014-12-07 15:42:53
  • 753

百炼OJ1005

描述 Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the proce...
  • u014079441
  • u014079441
  • 2016-01-15 14:34:30
  • 241

POJ 百炼 保研机试 2750:鸡兔同笼

2750:鸡兔同笼 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB 描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外...
  • u013240812
  • u013240812
  • 2015-11-10 14:52:12
  • 513

百练OJ:2701:与7无关的数

题目链接:描述一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n &amp;lt; 100)的与7无关的正整数的平方和.输入输入为一行...
  • Kangyucheng
  • Kangyucheng
  • 2018-02-27 13:25:45
  • 62

POJ2039 To and Fro

这时候是时候改变一下写OJ解题的风格了,打算以后都写上OJ解题的思路和翻译这个题题意很简单,就是看懂例子就可以了,然后具体要转换回去要进行蛇形填数的变换注意关键思路: 蛇形填数!!!!!蛇形填数!!...
  • qq_23100787
  • qq_23100787
  • 2015-12-28 12:44:10
  • 422

DSOJ BST(二叉搜索树)

题目链接 #include //Binary Search Tree #include typedef struct node { int data; struct node *left, ...
  • xhf0374
  • xhf0374
  • 2015-12-19 22:58:58
  • 239

百练OJ-2815 城堡问题【DFS】

题面:1 2 3 4 5 6 7 ############################# 1 # | # | # | | # ...
  • SCaryon
  • SCaryon
  • 2017-03-31 21:44:38
  • 260

CSU-1588 合并果子

1588: 合并果子 Submit Page     Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Sub...
  • Uranus1024
  • Uranus1024
  • 2017-05-27 21:53:38
  • 200
收藏助手
不良信息举报
您举报文章:【百炼oj】2039:反反复复
举报原因:
原因补充:

(最多只允许输入30个字)