zoukankan      html  css  js  c++  java
  • CF897C Nephren gives a riddle

    思路:

    递归。

    比赛的时候脑抽了len[]没算够,wa了几次。

    实现:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 using ll = long long;
     4 const string s = "What are you doing at the end of the world? Are you busy? Will you save us?";
     5 const string t = "What are you doing while sending "";
     6 const string v = ""? Are you busy? Will you send "";
     7 const ll len_s = s.length();
     8 const ll len_t = t.length();
     9 const ll len_v = v.length();
    10 ll len[100005];
    11 char dfs(ll n, ll k)
    12 {
    13     if (n == 0) 
    14     {
    15         if (k >= 1 && k <= len_s) return s[k - 1];
    16         else return '.';
    17     }
    18     else if (n >= 54)
    19     {
    20         if (k <= len_t) return t[k - 1];
    21         return dfs(n - 1, k - len_t);
    22     }
    23     else 
    24     {
    25         if (k <= len_t) return t[k - 1];
    26         else if (k > len_t && k <= len_t + len[n - 1])
    27             return dfs(n - 1, k - len_t);
    28         else if (k > len_t + len[n - 1] && k <= len_t + len[n - 1] + len_v)
    29             return v[k - len_t - len[n - 1] - 1];
    30         else if (k > len_t + len[n - 1] + len_v && k <= len_t + 2 * len[n - 1] + len_v)
    31             return dfs(n - 1, k - len_t - len[n - 1] - len_v);
    32         else if (k == len_t + 2 * len[n - 1] + len_v + 1)
    33             return '"';
    34         else if (k == len_t + 2 * len[n - 1] + len_v + 2)
    35             return '?';
    36         else return '.';
    37     }
    38 }
    39 int main()
    40 {
    41     len[0] = (ll)len_s;
    42     for (int i = 1; i <= 53; i++)
    43     {
    44         len[i] = len[i - 1] * 2 + len_t + len_v + 2;
    45     }
    46     ll q, n, k;
    47     cin >> q;
    48     while (q--)
    49     {
    50         cin >> n >> k;
    51         cout << dfs(n, k);
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    hbase2.x错误记录之 disable表卡住
    hbase2.x 错误记录之 procedure is still running
    yarn timelineserver v2 配置
    Linux 系统出现大量的CLOSE_WAIT
    hbase 2.x 异常记录之 hbase shell不能分配内存
    spark 访问 hive,不能获取到数据信息
    hive 由于distcp导致执行sql慢
    Hbase 安装部署
    MooseFS安装部署
    hbase2.x 单节点启动,master挂掉
  • 原文地址:https://www.cnblogs.com/wangyiming/p/7965926.html
Copyright © 2011-2022 走看看