汚染、夏、自宅にて。

甘いものが好きで辛いものが苦手です

paizaでSランクを目指す その2(終)

f:id:osen_hub:20210816225723j:plain

 

解けてしまった。前回ちゃんと対策とか考えたのが恥ずかしくなってきた。

 

よくよく考えたら、前回の記事にはったQiitaの記事、ギリギリpaizaの規約に違反してない? 大丈夫?

 

競プロって、最初のほうはアルゴリズムを知っているかどうかの勝負で、アルゴリズムを勉強すればするほど解ける問題が増える。

でもある程度までいくと、基本的なアルゴリズムを知っていることは前提として、じゃあどのアルゴリズムを使うかという勝負になる気がする。

 

何も考えずに総当たりするのは実装は簡単だから、仮に総当たりで遅くてもすぐに書き直せば良い。「動的計画法を使うか」とか思うと、修正にかかる時間は総当たりよりも長くなる。

 

問題の条件(与えられる数値Nというのは、どれくらいの値になるのか?とか) を見て、N≦100くらいなら総当たりで全然いけそうだ。とか、今回はN≦10^7だから、pythonでは総当たりはきつそう。何か高速化できないだろうか。とか考える勝負な気がする。

 

だから、前提として「この問題は20分で解けました」みたいな情報を与えられると、「20分か。問題の把握に3分、テストケースの値を境界値とかに変えて試したりもするだろうから、その作業に5分。とすると残り12分くらいでコードを書いたのかな。12分で書けるコードとなると、そんなに複雑なことはしてないのか?」みたいな勘繰りができてしまう。

 

これが「この問題は15分で解けました」「この問題は10分で解けました」とかになると、さらにコードの推測がつく。

paizaの規約には「問題のヒントをネット上に書くな」みたいのがあるけど、「20分で解けました」と書くのは結構大きなヒントじゃないのかな。

 

 

と、なんだかズルをした気もするけど、一応Sランクになれました。

 

今後他人に僕の事を紹介するときは、「彼は日本で最もプログラミングができる人のひとりです」と、中学英語の例文みたいに紹介してください。