X



競技プログラミング総合スレ 65

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (オッペケ Srdf-v7Gx)
垢版 |
2022/12/26(月) 12:47:37.63ID:CkzYHyzir
!extend:checked:vvvvv:1000:512
↑2行になるようにする

競技プログラミング、オンラインジャッジ、プログラミングコンテストやCTFに関する雑談スレ
次スレは>>950

AtCoder https://atcoder.jp/
yukicoder https://yukicoder.me/
Codeforces https://codeforces.com/
CodeChef https://codechef.com/
Project Euler https://projecteuler.net/
CLIST https://clist.by/
AtCoder Problems https://kenkoooo.com/atcoder/
AtCoder Clans https://kato-hiro.github.io/AtCoderClans/

※前スレ
競技プログラミング総合スレ 64
https://mevius.5ch.net/test/read.cgi/tech/1664700238/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0003デフォルトの名無しさん (ワッチョイ 07b9-+Dix)
垢版 |
2022/12/28(水) 11:48:49.25ID:a6/n2za+0
社長曰く以外の感じなので、例えばバックエンドエンジニアで良い評価が欲しいなら青色くらい必要
https://twitter.com/chokudai/status/1474258242452987907

AtCoderがそのまま役立つ業務ってだいぶ少なくて、
【評価高】は赤まで、
数理最適化・研究開発
【評価中】は青~水まで、(黄もまれに?)
バックエンドエンジニア・機械学習エンジニア
【評価低~評価無】は水~茶色まで、
その他のITエンジニア

くらいがプラス評価になります。関連度が高ければ高いほど高いレートが評価されやすくなり、逆に低いと低いレートですぐカンストしちゃう、って感じ。

評価低に関しては「コードが書けることが保証されてる」くらいのアピールにしかならないです。
https://twitter.com/5chan_nel (5ch newer account)
0008デフォルトの名無しさん (ワッチョイ 17e6-dxp0)
垢版 |
2022/12/29(木) 17:03:59.96ID:9T4aEcS90
問題文によってX軸とY軸がどの方向か明記されていない場合どうすれば良いのでしょうか

左右方向がX軸
上下方向がY軸
と思って解いていたら解説の画像見ると真逆でした

例えば鉄則本のB09 - Papers
0009デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/29(木) 17:05:49.24ID:w08nm0DJ0
>>3
プラス効果実感できそうなのが青くらいというのはそうなのかもしれない
茶色以上だったら、ないよりはある方がマシって場面はたくさんあると思うけどね
こんなのセルフプロモーション力次第だから、そこがヘタクソだと何色でも…というところがあるかな
0011デフォルトの名無しさん (ワッチョイ adbd-MkkF)
垢版 |
2022/12/29(木) 17:15:02.16ID:w08nm0DJ0
>>8
本持ってないので確認できないけど、確かに普通数学では左右がx軸、上下がy軸方向で書かれることが多いからちょっと混乱する人もいるかも
問題見た限り、答えに影響しないのでどっちで書いてもいいってことで、逆に書いたんじゃないかな
ちなみに競プロだと配列の添字の関係で逆に書く場合のメリットもあるんだよね(この問題はそのメリットも別にないけど)
明記されてない場合はほぼ答えに影響しない場合だから、勝手に自分の中で決めればいいと思う、影響するんなら質問タブから聞こう
0013デフォルトの名無しさん (アウアウウー Sa71-+Dix)
垢版 |
2022/12/29(木) 17:19:36.13ID:oSKPPGt3a
軸の方向なんてだいたいどうでもいいよ
自分の好きに描いてくれとしかいえない
向きの考慮必要な問題なら普通は記載されてる

ただまあ実装としては配列操作の都合上、どっちかのほうが簡単になることはあるので、
賢いひとだと考察や実装しやすいように柔軟に向きを入れ替えてるかな
0017デフォルトの名無しさん (ワッチョイ 0b0c-7dni)
垢版 |
2022/12/29(木) 17:53:57.43ID:YzoArJYh0
質問
apg4bが終わったばかりの競プロ初心者だけど、次に読めばいい本は3つのうちのどれですか?
・競技プログラミングの鉄則
・問題解決のためのアルゴリズム×数学
・アルゴリズムとデータ構造
0023デフォルトの名無しさん (ワッチョイ 2b01-7HIL)
垢版 |
2022/12/29(木) 19:01:07.31ID:zROXqcZ10
蟻本完璧に咀嚼しきれたら青〜黄色はいけると思うしアレは中級者向けでしょ
螺旋本は教養としては大事だけど傾向が若干違う気もするし鉄則本かけんちょん本が良さそう
0027デフォルトの名無しさん (ワッチョイ c7a4-PQsC)
垢版 |
2022/12/29(木) 19:32:12.24ID:bDkXL6yD0
蟻本は難易度的には、第2章が普通に初心者向けの内容だし、初心者でも読めるでしょ
ただジャッジがPOJとかだったりして不便、という理由があるために今どきの入門者向けではないかなあ

基礎問題のあとにいきなり難易度が上がった問題が出てきたりするけど、そういうのを飛ばせば誰でも読めるだろうし、
そういうのも全部習得していけばABC卒業できるほどの基礎力が付く

鉄則本は基礎問題が中心に載ってて、解説もわかりやすいから、数学力に自信のない初心者にはとてもおすすめ
0028デフォルトの名無しさん (ワッチョイ 6b7a-V47g)
垢版 |
2022/12/29(木) 20:01:46.63ID:iTlEyNON0
おじさんが学生の頃は螺旋本読んで蟻本読んだら青になれた
最近は新しい本出てるらしいけど読んだことがないので何色向けか分からない
0035デフォルトの名無しさん (ワッチョイ 0b0c-7dni)
垢版 |
2022/12/30(金) 00:20:49.75ID:Jg6kHZTu0
数学は特に得意でも不得意でも無いよ
あと、プログラミングの経験はほとんど無くてAPG4bが初めてと言っても過言では無いと思う
上で挙げた3つの本の他にけんちょんさんが書いてるAtCoder入門なんかも良さそう
0043デフォルトの名無しさん (ワッチョイ e355-s0Sd)
垢版 |
2022/12/30(金) 14:57:53.70ID:3r6Oj/Bn0
初等整数論とか組合せ論の初歩についてあまり詳しくないけれど、
プログラミングコンテストでは強いっていう人はいるんですか?

プログラミングコンテストで強い人はみな数学にも強いのではないですか?
0044デフォルトの名無しさん (テテンテンテン MM97-EBNJ)
垢版 |
2022/12/30(金) 15:18:16.52ID:jg66J2pLM
プログラミングコンテストにもいろいろあって、競技プログラミングのアルゴリズムという分野のコンテスト(具体的にはAtCoderのABC、ARC、AGCは全部そう)は、整数、組合せ論の問題が離散数学の一部として出題されるので、もろに成績に関係する
一方で、ヒューリスティックだったりKaggleに関しては、実はそうでもないんじゃないかという気がする
当然、基礎的な能力として、整数と組合せ論を最低限勉強しておいた方が離散数学的な操作に慣れて思考の助けになるところはあると思うし、勉強さえすればレベルの高いところまでできるような人がいずれのコンテストでも上に来ると思うけど
0045デフォルトの名無しさん (ワッチョイ 2b01-7HIL)
垢版 |
2022/12/30(金) 15:41:25.54ID:SISDjQCo0
組合わせ論・数論の精選とかパーフェクトマスターみたいな数オリ用対策用の参考書って競プロにも役立つの?たまに買ってる人見かけるけど黄色以上で効くのかな
0047デフォルトの名無しさん (ワッチョイ e355-s0Sd)
垢版 |
2022/12/30(金) 15:47:04.57ID:3r6Oj/Bn0
繁野麻衣子著『ネットワーク最適化とアルゴリズム』を買いましたが、積読状態です。
この本は競技プログラミングに役立ちますか?
0051デフォルトの名無しさん (ワッチョイ e355-s0Sd)
垢版 |
2022/12/30(金) 16:10:15.82ID:3r6Oj/Bn0
>>44,48,50
ありがとうございました。

>>50
読んでみます。
0053デフォルトの名無しさん (オッペケ Sr1f-v7Gx)
垢版 |
2022/12/30(金) 18:23:53.70ID:iKE0Xuujr
最悪計算量と何ができるか知ってるだけでも競プロでは使えるな
順位クエリ処理できる二分探索木の仕組み分かってないけど他人のライブラリコピペして使ってるわ
0061デフォルトの名無しさん (テテンテンテン MMb6-izKP)
垢版 |
2022/12/31(土) 15:07:27.00ID:ST9eXwUwM
LC木の上位互換でLC木に乗らないものが乗ったりするが、そもそもLC木自体がマニアックでAtCoderではなかなか使用機会ないだろうな
強いデータ構造がなきゃ解けない問題、強いデータ構造で一瞬で解けてしまう問題をAtCoderがそもそも好まないというのもあるし
0066デフォルトの名無しさん (ワッチョイ 1a55-9yt5)
垢版 |
2022/12/31(土) 18:22:00.74ID:zJ9NYHz+0
>>65
ところで、束論はどの本で勉強しましたか?
離散数学の本にすこしだけ書いてあることがありますが、役に立ちますか?
0067デフォルトの名無しさん (ワッチョイ dbbd-9j0N)
垢版 |
2022/12/31(土) 18:40:09.52ID:iNV3O62Z0
>>66
min, maxの一般化であるってことと定義を知っているってだけで、まともに勉強したことないかなあ
どこで最初に知ったんだろ、雪江代数にあったっけ?
ゼータ変換を束を使って捉え直すことができるみたいなのはあった気がするけど、束論自体をつきつめることが直接競プロにプラスになる感じではない印象
というか、抽象代数の勉強は全般的にそんな感じな気がする
0074デフォルトの名無しさん (ワッチョイ 1a55-9yt5)
垢版 |
2023/01/01(日) 10:12:49.91ID:+0Q+h7mh0
>>67
ありがとうございました。
0084デフォルトの名無しさん (ワッチョイ 5bb3-3363)
垢版 |
2023/01/03(火) 00:54:06.77ID:u0M4IWsD0
AtCoderの過去問って他人の提出検索できるけど、case_11.txt だけ間違えてるやつ一覧みたいのって取ってこれるんかな?
0086sage (オッペケ Srbb-A544)
垢版 |
2023/01/03(火) 01:14:46.33ID:3U7/noadr
>>84 >>85
もしかして: AtCoder Companions
0093デフォルトの名無しさん (ワッチョイ 369a-dguQ)
垢版 |
2023/01/05(木) 06:17:26.70ID:7AKtp3Yz0
重複組合せの式nHrで、整数のオーバーフローをできるだけ避けて計算したいのですが

とある、場合の数を数える問題で、普通はたぶんDP的に解くんだけど、規則的な形だった
ので、「これって重複組合せじゃん」と見抜いたんですよ
でnHrを例の階乗の公式(n+r)!/n!/r!で計算して、テストケースを走らせるとnやrが小さい
のは通るのでやはりおkらしい。ただnやrが大きくなると階乗がオーバーフローしてしまう
解が数式で求まったのに数値的にはそんなに便利じゃないって?

でも普通nHrの計算って分子と分母でキャンセルして結果は大きくならないことが多い
ですよね。うまいこと変形したらオーバーフローしなさそう。もしそういうのが既にあれば
nHrの漸化式みたいので計算する手もありそう、って結局DPみたいなことしてる気がw
0097デフォルトの名無しさん (ワッチョイ 362a-3363)
垢版 |
2023/01/05(木) 12:36:04.14ID:BpZRjrYb0
パスカルの三角形で計算する方が確実かな
0098デフォルトの名無しさん (ワッチョイ 369a-dguQ)
垢版 |
2023/01/05(木) 12:51:55.08ID:7AKtp3Yz0
>>96
どうもです。が、n, mは実際には100ぐらいまでいくようで(すみません)、
リンク先の最初のコードだと 100 C 99 とかで間違った答えが。おっとクヌース先生敗北?

こういう場合は普通にCの性質より 100 C 99 = 100 C (100-99) = 100 C 1 とすれば
精度も計算量も良さそうです
というわけで... 全テストケースクリアしました! ありがとうございます
0100デフォルトの名無しさん (ワッチョイ 369a-dguQ)
垢版 |
2023/01/05(木) 13:23:09.26ID:7AKtp3Yz0
>>99
そうですね、nCrで r=n/2付近はでかい数になりますよね
テストケースではそういう場合は除外されているようです

そういうわけで、組み合わせを直接計算するとテストケースでは64bit整数がいるんですが、
組み合わせの直接計算でなく、DPで再帰的に場合の数を計算するようなコードだと
32bit整数で大丈夫な感じなんですが... ええと
■ このスレッドは過去ログ倉庫に格納されています