• 愚人节比赛


    愚人节比赛“战况”

    洛谷愚人节(2019),做出来(3)题,(rank)垫底;
    洛谷愚人节(2020),做出来(9)题,(rank 1)
    牛客愚人节(2020),做出来(9)题,(rank 11)
    (CF)愚人节(2020),做出来(6)题((H)题没(rush)出来),(rank 91)

    一些网站

    在线加密解密
    在线二维码解码
    文字翻转
    维吉尼亚密码加密解密
    https://blog.csdn.net/wswokao/article/details/80856235

    April Fools Contest 2020

    (codeforces)比赛
    比赛链接:April Fools Contest 2020
    比赛现场:本人共(AC)(6)题,(H)题现场没调出来。

    A. Is it rated?

    好吧,连个题面都没有~
    其实看看标题就知道,本场比赛(unrated)
    所以输出(no)即可。

    B. Limericks

    这种打油诗老套路了吧。
    把每一行的第一个字符串起来,就是(two factors)
    于是,我们只需要将(n)表示成(n=n_1 imes n_2),然后输出(n_1)(n_2)即可,中间不要加空格。

    C. ...And after happily lived ever they

    这标题好像读不通,我们调整一下语序:... and they lived happily ever after
    这样子好像顺了很多,然后(0le ale 63),这里刚好有(6)个单词,不难想到是一个(6)位的二进制。

    D. Again?

    看到Axxxxxx第一反应是(oeis),但是这么多数列我咋打表啊...
    然而,这是出题人故意恶搞的...
    实际上你只需要判断奇偶性即可。

    E. Jordan Smiley

    卧槽,这个图片也太恐怖了。
    说下我的做法:
    先把这种图片放到(mspaint),然后给外层用颜料桶染成红色
    再调用(python)(PIL)库,识别色块是白色还是红色,打印出一个(0/1)矩阵。
    最后就是,这个(n)(m)要交换一下。。。

    F. Elementary!

    (elementary)再结合样例,不难发现这是考元素周期表
    考虑(dp),即可(AC)本题。
    我打了前(118)个元素的表,不知道具体要多少,反正一(A)也就没管了。

    G. Lingua Romana

    这道题的题面是用(Perligata)写的一份源代码,如果您设法运行它,您可能会认识到(TPK)算法。
    之后,您可以自己实现它,也可以在(RosettaCode)上查找它。

    #include <bits/stdc++.h>
    using namespace std;
    
    int a[15];
    
    int main() {
      for (int i = 0; i <= 10; i++) {
        cin >> a[i];
      }
      cout << fixed << setprecision(2);
      for (int i = 10; i >= 0; i--) {
        int v = a[i];
        double a = sqrt(abs(v));
        double b = v * v * v * 5;
        double res = a + b;
        if (res > 400) cout << "f(" << v << ") = MAGNA NIMIS!" << '
    ';
        else cout << "f(" << v << ") = " << res << '
    ';
      }
      return 0;
    }
    

    H. It's showtime

    这个语言真是有病。。编译错误会给你报错:WHAT THE FUCK DID I DO WRONG...
    看到标题是(It's showtime),我们想到是(Arnoldc)(
    然后这个屑玩意,整个源代码都在口吐芬芳,我也是迫不得已才写的。。

    IT'S SHOWTIME
      HEY CHRISTMAS TREE read
        YOU SET US UP @NO PROBLEMO
          GET YOUR ASS TO MARS read
            DO IT NOW
              I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
      
      HEY CHRISTMAS TREE ans
        YOU SET US UP 1
      HEY CHRISTMAS TREE n
        YOU SET US UP read
      HEY CHRISTMAS TREE mod
        YOU SET US UP read
      GET TO THE CHOPPER n
        HERE IS MY INVITATION n
          HE HAD TO SPLIT 1000
      ENOUGH TALK
      GET TO THE CHOPPER mod
        HERE IS MY INVITATION mod
          I LET HIM GO 1000
      ENOUGH TALK
      
      HEY CHRISTMAS TREE is
        YOU SET US UP @NO PROBLEMO
          STICK AROUND is
          GET TO THE CHOPPER ans
            HERE IS MY INVITATION ans
              YOU'RE FIRED n
            ENOUGH TALK
          GET TO THE CHOPPER ans
            HERE IS MY INVITATION ans
              I LET HIM GO mod
            ENOUGH TALK
          
          GET TO THE CHOPPER n
            HERE IS MY INVITATION n
              GET DOWN 2
            ENOUGH TALK
          GET TO THE CHOPPER is
            HERE IS MY INVITATION n
              LET OFF SOME STEAM BENNET 1
            ENOUGH TALK
        CHILL
      TALK TO THE HAND ans
    YOU HAVE BEEN TERMINATED
    

    洛谷愚人节2019

    比赛链接:洛谷愚人节 2019
    比赛现场:本人(rank 1)

    比赛获奖条件

    把这一团乱码放入(base64)解码器,跑出来即可。
    解密后:
    排名是(11)(4)(5)(14)的人获奖。

    比赛界面下方的那张白图

    把这张图片以(bmp)格式下载下来,用(notepad)打开,然后你就会看到:
    出题人:chen_zhe,Owenowl,Flierking

    [愚人节题目1] Newshound

    这个是关于台风的……
    百度德沃夏克分析法,百科的图片就是答案。

    [愚人节题目2] 你所在之城的怪事

    其实(dis_{i,i})恒为(0)。所以(sum_{i=1}^{n}dis_{i,i}=0),输出(0)即可。

    [愚人节题目3] 现代妖怪殖民地

    这道题文件不超过(2MB),可见这两个大数的位数可能很大。
    所以需要(fft)优化,当然正常人肯定都用(python)爆踩过去了。

    [愚人节题目4] 神秘数字

    把这些单词放进(Codeforces)题库里查询题目的编号(例如(512C),那么就是(512)),即可得到答案。
    把样例2的三个单词拿去查询,输出答案即可。

    [愚人节题目5] 复仇美神的要塞

    我们观察红石,然后还有拉杆,所以可以表示成(0/1)
    红石暗的时候是(0),亮的时候是(15)
    我们需要输出红石的状态,因此只要输出(T/F)即可。
    然而这道题我们需要猜金块和铁块分别代表什么。
    经过多次尝试,即可得到正确答案。

    [愚人节题目6] 无间之钟 ~ Infinite Nightmare

    直接把题目中的英文名,空格用下划线代替掉,即可查到通过数。

    [愚人节题目7] 妖怪之山 ~ Mysterious Mountain

    答案为

    1. true
    2. false
    3. false
    4. false
    5. true
    6. true
    7. true
    8. true
    9. false
    10. false
    11. false
    12. true
    13. false
    14. false
    15. true
    16. true
    17. false
    18. false
    19. true
    20. true
    

    我们将这些问题写成(01)串拼凑起来。
    注意到题目里有一个~,这是位运算的取反符号。
    所以把这个(01)(0)(1)(1)(0)即可。

    [愚人节题目8] FEELING IN THE DARK

    采用盲文字母表,发现每个字母代表的数字意义就是红点的个数。

    [愚人节题目9] 活泼的纯情小姑娘

    这上面有一个二维码。于是我们找在线二维码解码,然后可以得到一个解密文。
    提交上去,(boom)(WA)了!
    愚人节当天早上,在讨论版里有人提到了(sha512)加密,于是我们赶快把解密文每个换行符替换成空格,跑一个哈希,即可得到答案。

    [愚人节题目10] Fight Hard and Play Hard

    我们分析知:(A(attack),B(back),S(stop))(attack)表示对方血量(-1)(back)表示自己回满血,(stop)表示这一回合啥也不干。

    April Fools Contest 2017

    (Codeforces)比赛
    比赛链接:April Fools Contest 2017

    A. Numbers Joke

    显然这是一个数列,我们去(oeis)上去搜索(joke numbers),于是能查到一个史密斯数
    将这个数列打表打出来即可。

    A006753
    

    B. Kid's Riddle

    幼儿园小朋友估计也只会数圈圈吧,所以这道题就是让你把读入的数给转换成(16)进制,然后数圈圈的个数。

    April Fools Contest 2012

    (codeforces)比赛
    比赛链接:April Fools Contest 2012

    A. Mysterious numbers - 1

    (b)数位翻转,然后计算(a+b)即可。

    int a, b;
    
    int main() {
      scanf("%d%d", &a, &b);
      int _b = b; b = 0;
      while (_b > 0) {
        b = 10 * b + _b % 10;
        _b /= 10;
      }
      printf("%d
    ", a + b);
      return 0;
    }
    

    B. Star

    看到(star)还是个数列,果断去(oeis)上查找(star)
    不难找到是A003154.

    int n;
    
    int main() {
      cin >> n;
      cout << 6 * n * (n - 1) + 1 << '
    ';
      return 0;
    }
    

    C. A Piece of Cake

    这个切蛋糕的过程是来迷惑你的,其实它给了你(a_1,a_2,...,a_n),让你计算(sum_{i=1}^{n} i imes a_i)

    const int N = 10005;
    int a[N], n, ans;
    int main() {
      scanf("%d", &n);
      for (int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
        ans += a[i] * i;
      }
      printf("%d
    ", ans);
    }
    

    D. Broken Checker

    输入一个((1-5))的数,输出一个((1-3))的数。
    毛估估是(n mod 3 + 1),但是(WA)了。
    好吧,正确的是((n mod 5) mod 3+1)

    int n;
    int main() {
      cin >> n;
      cout << (n % 5) % 3 + 1 << '
    ';
    }
    

    E. MYSTERIOUS LANGUAGE

    根据报错信息,易知这是INTERCAL语言。

    int main() {
      cout << "INTERCAL
    ";
    }
    

    F. ucyhf

    看到(q)字母单独出现,自然想到是凯撒密码,这个(q)对应的是(a)
    经解密,我们得知是求从小到大的第(n)个反素数。
    反素数的定义是:一个数和它翻转的数不相等且两数均为素数。

    const int N = 1000002;
    vector <int> pr;
    int vis[N];
    void pre(int n) {
      vis[0] = vis[1] = 1;
      for (int i = 2; i <= n; i++) {
        if (!vis[i]) pr.pb(i);
        for (auto v: pr) {
          if (i * v > n) break;
          vis[v * i] = 1;
          if (i % v == 0) break;
        }
      } 
    }
    int rev(int x) {
      int y = 0;
      while (x > 0) {
        y = 10 * y + x % 10;
        x /= 10;
      } 
      return y;
    }
    int n;
    int main() {
      pre(1e6);
      scanf("%d", &n);
      for (rint i = 2; ; i++) {
        if (!vis[i] && !vis[rev(i)] && rev(i) != i) {
          n--;
          if (n == 0) {
            printf("%d
    ", i);
            exit(0);
          } 
        }
      }
    }
    

    G. Mysterious numbers - 2

    这道题的脑洞真的是大,,,给定你的三个数分别是(f_0,f_1,n)
    递推的公式为(f_n=f_{n-1}+f_{n-2}),求(f_n)
    嗐,这谁想得到~
    注:其实不用开(long long),极限数据答案为(218920)

    const int N = 25;
    ll f[N];
    int n;
    int main() {
      scanf("%lld%lld%d", &f[0], &f[1], &n);
      for (int i = 2; i <= n; i++) {
        f[i] = f[i - 1] + f[i - 2];
      }
      printf("%lld
    ", f[n]);
      return 0;
    }
    

    H

    咕咕咕

  • 相关阅读:
    MyBatis学习总结_01_MyBatis快速入门
    PHP 真正多线程的使用
    PHP Ajax 跨域问题最佳解决方案
    阿里内贸团队敏捷实践-敏捷回顾
    Linux系统下如何禁止ping命令或允许ping命令的方法
    分享常见的几种页面静态化的方法
    Spring-Boot初始篇
    在CentOS下面编译WizNote Qt Project
    CentOS 7快速搭建Nodejs开发环境
    大数据 Hive 简介
  • 原文地址:https://www.cnblogs.com/wlzhouzhuan/p/12580353.html
Copyright © 2020-2023  润新知