zoukankan      html  css  js  c++  java
  • zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak

    http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5502

     The 12th Zhejiang Provincial Collegiate Programming Contest - J
    Convert QWERTY to Dvorak

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY Keyboard with a broken Caps Lock key, so Edward never presses the broken Caps Lock key. Luckily, all the other keys on the QWERTY keyboard work well. Every day, he has a lot of documents to type. Thus he needs a converter to translate QWERTY into Dvorak. Can you help him?

    The QWERTY Layout and the Dvorak Layout are in the following:

    Qwerty Layout
    The QWERTY Layout

    Dvorak Layout
    The Dvorak Layout

    Input

    A QWERTY document Edward typed. The document has no more than 100 kibibytes. And there are no invalid characters in the document.

    Output

    The Dvorak document.

    Sample Input

    Jgw Gqm Andpw a H.soav Patsfk f;doe
    Nfk Gq.d slpt a X,dokt vdtnsaohe
    Kjd yspps,glu pgld; aod yso kd;kgluZ
    1234567890
    `~!@#$%^&*()}"']_+-=ZQqWEwe{[|
    ANIHDYf.,bt/
    ABCDEFuvwxyz
    

    Sample Output

    Hi, I'm Abel, a Dvorak Layout user.
    But I've only a Qwerty keyboard.
    The following lines are for testing:
    1234567890
    `~!@#$%^&*()+_-={}[]:"'<>,.?/|
    ABCDEFuvwxyz
    AXJE>Ugk,qf;


    分析:

    直接打表模拟对照输出即可。

    AC代码:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #include <stack>
     5 #include <queue>
     6 #include <map>
     7 #include <set>
     8 #include <vector>
     9 #include <math.h>
    10 #include <algorithm>
    11 using namespace std;
    12 #define ls 2*i
    13 #define rs 2*i+1
    14 #define up(i,x,y) for(i=x;i<=y;i++)
    15 #define down(i,x,y) for(i=x;i>=y;i--)
    16 #define mem(a,x) memset(a,x,sizeof(a))
    17 #define w(a) while(a)
    18 #define LL long long
    19 const double pi = acos(-1.0);
    20 #define Len 20005
    21 #define mod 19999997
    22 const int INF = 0x3f3f3f3f;
    23 
    24 char s1[]= {"-=_+qwertyuiop[]QWERTYUIOP{}asdfghjkl;'ASDFGHJKL:"zxcvbnm,./ZXCVBNM<>?"};
    25 char s2[]= {"[]{}',.pyfgcrl/="<>PYFGCRL?+aoeuidhtns-AOEUIDHTNS_;qjkxbmwvz:QJKXBMWVZ"};
    26 char c;
    27 
    28 char print(char c)
    29 {
    30     for(int i=0; s1[i]; i++)
    31         if(s1[i]==c)
    32             return s2[i];
    33     return c;
    34 }
    35 int main()
    36 {
    37     w(~scanf("%c",&c))
    38     printf("%c",print(c));
    39 
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    Python之坐标轴刻度细化、坐标轴设置、标题图例添加
    探索性数据分析
    http://blog.csdn.net/milton2017/article/details/54406482
    libsvm学习日记--1
    推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
    python中if __name__ == '__main__': 的解析
    Python类
    TweenMax学习一
    vuejsLearn---通过手脚架快速搭建一个vuejs项目
    vuejsLearn--- -- 怎么查看、修改、追加数据---->data对象
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/4456556.html
Copyright © 2011-2022 走看看