愚人節比賽

愚人節比賽「戰況」

洛谷愚人節\(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

咕咕咕

相關文章
相關標籤/搜索