愚人节比赛

愚人节比赛“战况”

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

一些网站

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

April Fools Contest 2020

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

A. Is it rated?

好吧,连个题面都没有~
其实看看标题就知道,本场比赛\(unrated\)
因此输出\(no\)便可。算法

B. Limericks

这种打油诗老套路了吧。
把每一行的第一个字符串起来,就是\(two\ factors\)
因而,咱们只须要将\(n\)表示成\(n=n_1\times n_2\),而后输出\(n_1\)\(n_2\)便可,中间不要加空格。app

C. ...And after happily lived ever they

这标题好像读不通,咱们调整一下语序:... and they lived happily ever after
这样子好像顺了不少,而后\(0\le a\le 63\),这里恰好有\(6\)个单词,不难想到是一个\(6\)位的二进制。优化

D. Again?

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

E. Jordan Smiley

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

F. Elementary!

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

G. Lingua Romana

这道题的题面是用\(Perligata\)写的一份源代码,若是您设法运行它,您可能会认识到\(TPK\)算法。
以后,您能够本身实现它,也能够在\(RosettaCode\)上查找它。url

#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!" << '\n';
    else cout << "f(" << v << ") = " << res << '\n';
  }
  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\n", a + b);
  return 0;
}

B. Star

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

int n;

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

C. A Piece of Cake

这个切蛋糕的过程是来迷惑你的,其实它给了你\(a_1,a_2,...,a_n\),让你计算\(\sum_{i=1}^{n} i \times 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\n", 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 << '\n';
}

E. MYSTERIOUS LANGUAGE

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

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

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\n", 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\n", f[n]);
  return 0;
}

H

咕咕咕

相关文章
相关标签/搜索