尺のブログ?

やりたいことをやりたいです

きまぐれ大喜利参加記

きまぐれ大喜利参加記

きまぐれ大喜利で10回読まれると自分の回答を振り返る記事を出す習慣があるようなので、僕も出してみたいと思います。
(このまえがきは「AtCoderで色が変わるとやったことを振り返る記事を出す習慣があるようなので、僕も出してみたいと思います。」っていう色変記事によく書いてあるやつのオマージュです。)

2-4 するは宣言、風邪は蔓延

匿名で出してたんですけどこれ僕です。これ個人名で読まれたらめんどくさい人に絡まれる可能性あるかな〜と思ったんですけどまぁいいや

確かこの回答作ったときYouTubeのラップ韻解説動画にハマってた気がします。

5-2 殺したはずなのにまだ動いている

掃除機を殺すなよというツッコミ待ちですね。完全に拾っていただいてありがたかったです。

5-4 黒船に比べたら小さいから

これ意味がわからないので、作ったとき頭おかしかったんだと思います。

まぁ掃除機といい、頭おかしい人が当然のように頭おかしいことを言ったり行ったりしてるような状況は好きなので、面白いと思うかはともかく結構気に入っていたりはします。

6-3 一日に5~6回正しい時間を指す

放送でも拾われた通り、「止まった時計でも一日に二度は正しい時間を指す」ってやつですね。完全に変な動きをする時計だと言いたかったんですけど、5~6回だと時計の針の速度が一定でもあまりのせいで実現可能なのでこれ5~7回とかにしとくべきでした。

7-4 サル山の猿が多いところだけ処理落ちしていました

実在性が高そうな答えだと思います。「実際行ってる」と評されるのはオタクとしては嬉しいものがあります。(けどこんなとこでそう言われてもなぁ)

答えのファニーさや意表付き具合より答えのリアリティが評価される大喜利の場もあるらしいと聞いたので、そういう回答も作ってみました。

7-4 ウサギに1万円スパチャしている人がいた

やりづらそうでしたね。ごめんなさい🙇‍♂️

「バーチャル」と「動物」と言われたらどうしても浮かんできてしまうので...

8-4 かなり嫌な気持ちになる

それはそう。

こういうおおざっぱな回答ほとんど読まれないんだけどなんか読まれたって感じですね。割と投げてみてもいいのかもしれない?

(9-2 青眼の白龍を捨てた)

ごめんなさい...間違って覚えてたとかじゃなくてなんか普通に勘違いしてて読まれるまて気付かなかったんですよね 頭バグってた

これ読まれた回数に数えていいのかな

10-3 サウナにクーラーが付いてる

これ僕の読まれた中では一番大喜利としてオーソドックスな感じの回答だと思います。こういうのが読まれてもなぁという感じはあるけど、それはそれとしてこういうのがあんまり作れないのは僕の実力不足ですね。

11-3イチゴの命乞い、いちごのい

言葉遊び系の回答は過去にも何度か読まれていましたが、僕はほとんどそういうの投げてなかったんですね。でもこのお題の回答としてはしょーもない言葉遊びはぴったりだと感じた(悪い人に捕まったときに、犯人に向かってカスの言葉遊び言ってたらめちゃくちゃおもろい)ので、可能な限り言葉遊びとしてカスなものを錬成して投げました。

以上です。この記事を読んでくださった皆様、てぃーい企画の皆様、その他の皆様、ありがとうございました。

ratedになれなかった問題たち(サブタイトル:くBCの問題を作るときに注意していること)

(この記事は、くそなぞなぞ Advent Calendar 2020 #kusonazo_advent の 多分 13 日目くらい の記事として執筆されました。)

はじめに

こんにちは、Suunn こと尺です。普段はくそなぞなぞ Beginner Contest(くBC)の多くの回でwriterをやっています。
くBCは現状新規writerの受け入れ態勢はありませんが、私としてはwriterを増やして、もっと自分がコンテストに参加できるようにしたいと考えております。そこで、今回は私がくBCの問題を作る上で考えていることを記事にしたいと思います。
というわけで、なぞなぞの問題が没になった理由を、実例とともに紹介していこうと思います。

注:例として出した問題の答えは白字にしてありますので、各自反転して確認してください。

case1: 特定の知識を要求する

Q1.丸顔のポケモンってなーんだ?(くAFC-C)

A1.カオガエン(顔が円なので)

Q2.多い家電量販店ってなーんだ?(くAFC-D)

A2.コジマ(好事魔多しなので)

以上の2問は考察が非自明で、面白い問題だと思います。(自画自賛) ですが、Q1はガオガエンというポケモン、Q2はコジマという家電量販店のCMを知っていることが要求されます。(参考: https://www.youtube.com/watch?v=5xWac9BjQmg)ちょうどこの記事が公開される数日前に、某テレビクイズ番組で特定の漫画の知識を要求する問題が出題され、このような問題を出すことの是非について紛糾がありました。このような知識を要求する問題が解けなかった場合、知識を持っていなかったことを反省するのではなく、「解けた人が運よくそれを知っていただけ、ずるい」という感情が生まれることが想像されます。


(競技)プログラミングなどの知識を要求する問題も、ここに分類されます。

Q3.どんなケースでWAになっているか言えなくなる病気ってなーんだ?

A3.口内炎(コーナー言えん)

Q4.古くなって変な音が出る図ってなーんだ?

A4.ボロノイ図


回答には特別な知識が必要ではなくとも、そう見えるものも避けた方がよいでしょう。

Q5.コートジボワールのやみふくろうってなーんだ?

A5.ヤムスクロ

風来のシレンというゲームにやみふくろうというキャラクターが登場しますが、この問題はそんなことを知らなくても一応解けます。ですが、「風来のシレンが回答に関係あるのでは?」と考えてしまうと、詳しくない人は全く無駄な検索に多くの時間を費やすことになるでしょう。


Q6.牛から逃げる祭りが行われる都市ってどーこだ?(くAFC-I)

A6.パンプローナ

クイズはなぞなぞではありません。

case2: 問題文が作れない

Q7.ハンガリーでかつて使われていた岡山弁ってなーんだ?(くAFC-L)

A7.ぺんげー

Q8.前髪が禿げていく速度について議論する学問分野の香水ってなーんだ?

A8.O(デコ)論

Q9.悟りを開いた討論者の曲ってなーんだ?(くそなぞなぞAGC004 提案問題)

A9.羅漢パネラー

以上の問題は、パースやもじり自体の面白さにはそこまで大きな問題はないのですが、適切な問題文を作ることが難しいため没になっています。

case3: しょうもない

Q10.毛の生えた赤ちゃんなーんだ?(くAFC-J)

A10.ケバブ

Q11.歯抜けのスリッパなーんだ?

A11.スキッパ

Q12.羊の手紙なーんだ?

A12.メーメール

Q13.お金持ちに噛みつくパスタ屋なーんだ?

A13.ガブリ長者

全部しょうもないですね。


似たようなものに、無理があって正解が出なさそうなパターンもあります。

Q14. 1.4くらいの針ってなーんだ?

A14.ルードニ

Q15.最強の道具なーんだ?

A15.相手無(敵なしなので)


考察が面白くないパターン。

Q16.積もっている解析学ってなーんだ?

A16.堆積学

Q17.持っているといいことがある4Kテレビってなーんだ?

A17.恩恵テレビ

複合語の片方を似た言葉に変えるだけみたいなのはあまり面白くないと思います。


面白くないのにはこういうパターンもあります。

Q18.5つの綴りで書かれる音楽ってなーんだ?

A18.ゴスペル

Q19.すっぱいものが集まってできた蒸気ってなーんだ?

A19.酢チーム

Q20/21/22.妊婦の/少数派の/色々なお茶ってなーんだ?

A20/21/22.マタニ/マイノリ/バラエティー

スを「酢」に読み替えるような1文字のパースや、tyをお茶に解釈したりするのは、無限に作れてしまう分必然性みたいなものがなくて面白くないです。

case4: 倫理的な問題がある

特定の対象を馬鹿にしたり、差別したり、風評をばらまいたりしているように解釈できてしまう虞のある出題です。

Q23. 遅れているインドってなーんだ?

A23.ビハインド

Q24.集団で怒ってる文字ってなーんだ?

A24.グルムキー文字

Q25.血と油が流れている川ってなーんだ?

A25.チグリス川


言葉遣いが悪かったり、ダークだったりなものもあります。

Q26.海に近い岩場をこき下ろす物質ってなーんだ?

A26.炭化水素

Q27.B級映画で術式を誤って修道院に人喰いの魔を召喚してしまったときのスーパーマーケットなーんだ?

A27.成城石井

case5: その他

ミスリーディング

Q28.生姜の小学校なーんだ?

A28.ジンジャー小学校

生姜っ校は想定WAなのですが、間違いであると言い切れる理由も存在しません。


そのまますぎて問題として不成立

Q29.クリーム煮を作る北欧神話の英雄なーんだ?

A29.クリーム煮る


画像

Q30.

A30.ズワイガニ

画像問題は多分出せません、知らんけど


記事書くの飽きた


おしまい

AtCoderで黄色になるまでにやったこと

やったこと

青になる

(一部の超人を除くと)青にならないと黄色になれません。青になる方法はこの記事を参照してください。
suunnch.hatenablog.com

Codeforcesに出る

こどふぉをやりました。時間が遅くて大変でしたが、コンテストに出る練習になってよかったと思います。あとAtCoderでは鍛えにくい実装の訓練になりました。青と紫を行ったり来たりしています。(苦手なので)

ライブラリを整備する

基本的な数学(Combinationの計算など)や、ダイクストラ法などのグラフアルゴリズムをライブラリ化しました。毎回考えて書くより楽になりました。(なんだかんだバグらせがちなので)

自分を天才だと思う

天才だと思うと700点が解けるようになります。冗談です。ですが、解けないと思ってしまうと解けないので天才だと思いましょう。

やらなかったこと

使わなかったアルゴリズムやデータ構造

セグメント木、フロー、木DP、Grundy数、文字列アルゴリズム、包除原理

以上の事項は結局AtCoderでコンテスト中に使って問題をACしたことはないと思います。黄色はそんなもんです、AtCoderなので(えー)(ごめんなさい)。橙になるにはいるんでしょうか。

AtCoderで青になるまでにやったこと

年末のAGC030で、AtCoderで青になることができました。2018年中に青になれたのが嬉しいので、青になるまでにやったことをまとめていこうと思います。

・過去問を解く

ABC-D、AGC-Bの400〜600点問題を積極的に、7割くらい埋めました。400を埋めきってない人でも、解きやすい500~600点問題はそれなりに存在するのでやっていくといいと思います。

・バチャをやる

AtCoder Virtual Contest様にて、何度か「青になりたい!」というタイトルのバーチャルコンテストを開きました。近いレベルの人をたくさん集めて難しめのバチャをやると、ライバルの存在やコンテストの戦い方が意識できて良かったと思います。参加してくださったみなさま、どうもありがとうございました。

・蟻本を買う

大学の教科書に蟻本が置いてあったので、つい買ってしまいました。今のところ辞書的な活用法しかしていませんが、すごく便利で良い本だと思います。

・標準的な機能を学ぶ

水色には300点早解きor時々400点に成功で上がれますが、青を狙うにあたって400点問題は落とせません。ですが、400点以上の問題になると、さすがにif文とfor文、配列だけで実装しきるのは(不可能ではないはずですが)難しい問題が増え、プログラミング初心者には厳しいものがあります。

ここでは、「私が」知って見える世界が変わった標準的な機能を紹介していきたいと思います。ちなみに私はJavaを使ってるので、みなさんの言語には似たようなものがないかもしれません、なかったらごめんなさい。

・HashMap

学んだのは緑時代ですが、これは最強クラスのデータ構造と思います。値の範囲が大きいデータを、何回出てきたか数えられたり、座標圧縮をしたり、Objectから整数への対応などを簡単に作ったりすることができます。神。
素因数分解なんかもやりやすい。

・TreeMap

キーを取り出すときに、ソートがされていて嬉しいHashMapです。

・Queue、Stack

幅優先探索深さ優先探索に使うイメージが強そうですが、これもめちゃくちゃ便利です。道中でものを拾って、「古い」or「新しい」ものから順に使うというようなことがしたいときに便利です。

・Deque

一番古いのも新しいのもすぐ取り出せます。時々使いたくなる問題があります。

・Priority_queue

Queue、Stackの上位互換(計算時間を除けば)。かなり強いと思います。これがないと解けない問題、多いんじゃないでしょうか。便利すぎて「いいの?」ってなりがちです。

・ListやSet、Map型の配列

グラフ系の問題などを解くにあたっては半分必須っぽい気がします。

・拡張for文

これもグラフ系の問題には必須っぽいです。ある頂点から伸びてる辺を全部見るなどできます。MapのKeySetなども全部さらえます。嬉しみ。

・bit演算

bit系の問題を解いたり、bitDPをするときに、「うーん、2のi乗で割って、それを2で割ったあまりを...」みたいなのがめちゃくちゃ簡単に書けて、しかも高速に動作します。

・Class

Pairなどを作れます。Pairが欲しくなることはめちゃくちゃ多いので…

・Comparator

整数を逆順にソートしたいくらいなら−1倍したものをぶち込んで、実際に使うときに元に戻せばいいのですが、Objectをソートしたくなる時があります。そんなときにComparatorが使えるといいですね。

・入出力高速化

JavaのScannerやSystem.out.println()は遅く、問題によってはここを改善するだけでTLEが取れることもあります。
AtCoder Express 2(入力60万個、出力10万個)でテストすると、入出力高速化だけで1359msが302msまで改善しました。
詳しくはご自分で調べてください。

・基本的なアルゴリズム、データ構造を学ぶ

AtCoderは典型そのままはあまり出ませんが、問題を言い換えていくと典型になることは無数にあります。そんなとき、解けたのに書けない…ってなると悲しいし、上がるはずだったレートをみすみすドブに捨てる行為になることも多々あります。そんな悲劇を回避するために、典型アルゴリズムは書けるようにしたほうが良さそうです。

再帰

使えると嬉しいです。メモ化再帰のDPは、問題によってはforで回すより脳死で書けたりします(回す順番を考えなくていいので)。いくつかの変数をグローバル変数にすると引数が少なくて済みそうです。

・二分探索

書けると嬉しいです。値の検索だけでなく、何かを決め打ちすると可不可を判定するだけの問題になったりするときにも使えます。

・最短経路アルゴリズム

ワーシャルフロイド、ベルマンフォード、ダイクストラ全部使えるようになっておくと良いです。400点問題に全部あったはずです。茶色の頃の話ですが、ダイクストラで簡単に解けるとわかった問題が、全く何も書けずに虚無をしたことがあります。

・Union-find木

これも400点程度でも時々使う問題が出ます(良く考えるとBFSやDFSでも良かったりするものもありますが)。経路圧縮だけなら割と書きやすいです。

・他

BIT、セグ木、平衡二分探索木、フローなども勉強(写経)しましたが、AtCoderで青になるのに使うことはあまりなさそうではあります。当然やっておいて損はないと思います。

最後に

黄色目指して頑張ります!!!!!!!!!!!!!!!!!!!!!!!!