zoukankan      html  css  js  c++  java
  • 初识Google code jam平台

      为了熟悉一下code jam的平台,今天简单试了一下,做了一下Qualification Round Africa 2010的三道题目,都是很基础的。

      A题:给一个数n和一系列数a[],从a[]中找出两个数的和等于n,输出这两个数的下标。

     1 #include <cstdio>
     2 #define MAXN 2010
     3 
     4 int p[MAXN];
     5 
     6 int main()
     7 {
     8 #ifdef LOCAL
     9     freopen("A-large-practice.in", "r", stdin);
    10     freopen("A.out", "w", stdout);
    11 #endif
    12     int T;
    13     scanf("%d", &T);
    14     for (int kase = 1; kase <= T; kase++)
    15     {
    16         int c, n;
    17         scanf("%d%d", &c, &n);
    18         for (int i = 1; i <= n; i++)
    19             scanf("%d", &p[i]);
    20         int i, j;
    21         for (i = 1; i <= n; i++)
    22             for (j = i+1; j <= n; j++)
    23                 if (p[i] + p[j] == c)  goto s;
    24 s:        printf("Case #%d: %d %d
    ", kase, i, j);
    25     }
    26     return 0;
    27 }
    View Code

      B题:给出一行字母和空格组成的字符串,每个单词以空格隔开,将单词逆序输出。

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cctype>
     4 #include <vector>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9 #ifdef LOCAL
    10     freopen("B-large-practice.in", "r", stdin);
    11     freopen("B.out", "w", stdout);
    12 #endif
    13     int T;
    14     scanf("%d", &T);
    15     getchar();
    16     string str;
    17     vector<string> v;
    18     for (int kase = 1; kase <= T; kase++)
    19     {
    20         v.clear();
    21         getline(cin, str);
    22         for (int i = 0; i < str.size(); i++)
    23         {
    24             string t = "";
    25             while (i < str.size() && isalpha(str[i]))
    26             {
    27                 t += str[i];
    28                 i++;
    29             }
    30             v.push_back(t);
    31         }
    32         printf("Case #%d:", kase);
    33         for (int i = v.size()-1; i >= 0; i--)
    34             cout << " " << v[i];
    35         printf("
    ");
    36     }
    37     return 0;
    38 }
    View Code

      C题:关于T9键盘的,给出一个字符输入序列(只含小写字母和空格),输出对应的按键序列。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cctype>
     4 
     5 int main()
     6 {
     7 #ifdef LOCAL
     8     freopen("C-large-practice.in", "r", stdin);
     9     freopen("C.out", "w", stdout);
    10 #endif
    11     int table[26][2];
    12     for (int i = 0; i < 15; i++)
    13     {
    14         table[i][0] = i / 3 + 2;
    15         table[i][1] = i % 3 + 1;
    16     }
    17     for (int i = 15; i < 19; i++)
    18     {
    19         table[i][0] = 7;
    20         table[i][1] = i - 14;
    21     }
    22     for (int i = 19; i < 22; i++)
    23     {
    24         table[i][0] = 8;
    25         table[i][1] = i - 18;
    26     }
    27     for (int i = 22; i < 26; i++)
    28     {
    29         table[i][0] = 9;
    30         table[i][1] = i - 21;
    31     }
    32     int T;
    33     scanf("%d", &T);
    34     getchar();
    35     char str[1100];
    36     for (int kase = 1; kase <= T; kase++)
    37     {
    38         gets(str);
    39         int pre = -1;
    40         int len = strlen(str);
    41         printf("Case #%d: ", kase);
    42         for (int i = 0; i < len; i++)
    43         {
    44             if (str[i] == ' ')
    45             {
    46                 if (pre == 0)  printf(" ");
    47                 printf("0");
    48                 pre = 0;
    49             }
    50             else if (isalpha(str[i]))
    51             {
    52                 int t = str[i] - 'a';
    53                 if (table[t][0] == pre)  printf(" ");
    54                 for (int j = 0; j < table[t][1]; j++)
    55                     printf("%d", table[t][0]);
    56                 pre = table[t][0];
    57             }
    58         }
    59         printf("
    ");
    60     }
    61     return 0;
    62 }
    View Code

      感觉数据都是比较规范的,比如B题明确说“每行开头和结尾没有空格,每个单词仅由一个空格分割”,没有太多的陷阱,也可能因为这是让熟悉平台的缘故吧,没想难为人...

      因为这是练习,所以只需要提交输出结果就行了,可以自己选择输入规模(Small input & Large input),不同的规模分值不同。记得看引导时说在比赛时要提交结果和源码,而且从开始下载输入文件到提交是有时间限制的(针对Small input和Large input分别为4min和8min),没参加过比赛,不清楚,-_-||...

      具体的还要以后更多了解啦...

  • 相关阅读:
    js原型链
    js的__proto__,prototype、constructor属性
    百度ife2015-小白的弯路2
    百度ife2015-小白的弯路1
    Visaul Studio 密钥
    pycharm常用的一些快捷键
    python3练习题--字符串
    字符串相关方法
    python3 基本数据类型
    在python中缩进的重要性
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3319535.html
Copyright © 2011-2022 走看看