洛谷愚人節\(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
\(codeforces\)比賽
比賽連接:April Fools Contest 2020
比賽現場:本人共\(AC\)了\(6\)題,\(H\)題現場沒調出來。c++
好吧,連個題面都沒有~
其實看看標題就知道,本場比賽\(unrated\)。
因此輸出\(no\)便可。算法
這種打油詩老套路了吧。
把每一行的第一個字符串起來,就是\(two\ factors\)。
因而,咱們只須要將\(n\)表示成\(n=n_1\times n_2\),而後輸出\(n_1\)和\(n_2\)便可,中間不要加空格。app
這標題好像讀不通,咱們調整一下語序:... and they lived happily ever after。
這樣子好像順了不少,而後\(0\le a\le 63\),這裏恰好有\(6\)個單詞,不難想到是一個\(6\)位的二進制。優化
看到Axxxxxx第一反應是\(oeis\),可是這麼多數列我咋打表啊...
然而,這是出題人故意惡搞的...
實際上你只須要判斷奇偶性便可。網站
臥槽,這個圖片也太恐怖了。
說下個人作法:
先把這種圖片放到\(mspaint\),而後給外層用顏料桶染成紅色。
再調用\(python\)的\(PIL\)庫,識別色塊是白色仍是紅色,打印出一個\(0/1\)矩陣。
最後就是,這個\(n\)和\(m\)要交換一下。。。ui
\(elementary\)再結合樣例,不難發現這是考元素週期表。
考慮\(dp\),便可\(AC\)本題。
我打了前\(118\)個元素的表,不知道具體要多少,反正一\(A\)也就沒管了。加密
這道題的題面是用\(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; }
這個語言真是有病。。編譯錯誤會給你報錯: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
比賽現場:本人\(rank\ 1\)。
把這一團亂碼放入\(base64\)解碼器,跑出來便可。
解密後:
排名是\(11\),\(4\),\(5\),\(14\)的人獲獎。
把這張圖片以\(bmp\)格式下載下來,用\(notepad\)打開,而後你就會看到:
出題人:chen_zhe,Owenowl,Flierking
這個是關於颱風的……
百度德沃夏克分析法,百科的圖片就是答案。
其實\(dis_{i,i}\)恆爲\(0\)。因此\(\sum_{i=1}^{n}dis_{i,i}=0\),輸出\(0\)便可。
這道題文件不超過\(2MB\),可見這兩個大數的位數可能很大。
因此須要\(fft\)優化,固然正常人確定都用\(python\)爆踩過去了。
把這些單詞放進\(Codeforces\)題庫裏查詢題目的編號(例如\(512C\),那麼就是\(512\)),便可獲得答案。
把樣例2的三個單詞拿去查詢,輸出答案便可。
咱們觀察紅石,而後還有拉桿,因此能夠表示成\(0/1\)。
紅石暗的時候是\(0\),亮的時候是\(15\)。
咱們須要輸出紅石的狀態,所以只要輸出\(T/F\)便可。
然而這道題咱們須要猜金塊和鐵塊分別表明什麼。
通過屢次嘗試,便可獲得正確答案。
直接把題目中的英文名,空格用下劃線代替掉,便可查到經過數。
答案爲
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\)便可。
採用盲文字母表,發現每一個字母表明的數字意義就是紅點的個數。
這上面有一個二維碼。因而咱們找在線二維碼解碼,而後能夠獲得一個解密文。
提交上去,\(boom\),\(WA\)了!
愚人節當天早上,在討論版裏有人提到了\(sha512\)加密,因而咱們趕快把解密文每一個換行符替換成空格,跑一個哈希,便可獲得答案。
咱們分析知:\(A(attack),B(back),S(stop)\),\(attack\)表示對方血量\(-1\),\(back\)表示本身回滿血,\(stop\)表示這一回合啥也不幹。
\(Codeforces\)比賽
比賽連接:April Fools Contest 2017
顯然這是一個數列,咱們去\(oeis\)上去搜索\(joke\ numbers\),因而能查到一個史密斯數。
將這個數列打表打出來便可。
A006753
幼兒園小朋友估計也只會數圈圈吧,因此這道題就是讓你把讀入的數給轉換成\(16\)進制,而後數圈圈的個數。
\(codeforces\)比賽
比賽連接:April Fools Contest 2012
將\(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; }
看到\(star\)仍是個數列,果斷去\(oeis\)上查找\(star\)。
不難找到是A003154.
int n; int main() { cin >> n; cout << 6 * n * (n - 1) + 1 << '\n'; return 0; }
這個切蛋糕的過程是來迷惑你的,其實它給了你\(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); }
輸入一個\((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'; }
根據報錯信息,易知這是INTERCAL語言。
int main() { cout << "INTERCAL\n"; }
看到\(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); } } } }
這道題的腦洞真的是大,,,給定你的三個數分別是\(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; }
咕咕咕