tookunn’s diary

主に競技プログラミング関係

2021-01-01から1年間の記事一覧

AtCoder Beginner Contest 174 C - Repsept

問題 atcoder.jp 考察 7, 77, 777, ...の約数を列挙して、Kの約数を列挙して何か規則性があるのかとか探していたが 分からず。 ↓ 数列をAとし、i番目の要素をA[i]とする。 Kの倍数ということは A[i] mod K = 0ということ。 ↓ A[i + 1] = A[i] * 10 + 7なので…

京セラプログラミングコンテスト2021(AtCoder Beginner Contest 200) D - Happy Birthday! 2

ABC

問題 atcoder.jp 考察 数列Aから異なる部分数列B,Cを探してB,Cそれぞれの総和のmod200が同じものを出力する問題。重要な点としては 数列Aから見つかる部分数列は2^N-1通り 部分数列の総和のmod200は200通り 数列Aの長さがある長さ以上になったら、総和のmod2…

AtCoder Beginner Contest 188 D - Snuke Prime

ABC

問題 atcoder.jp 考察 となっていて、区間として範囲が大きいので いもす法という手法を使って、単純に各区間の増減の累積和を取ることができないことが分かる。最初は各区間についてを一組としてまとめて、うまくソートなりなんなりをすれば良さそうと考え…

ZONeエナジー プログラミングコンテスト “HELLO SPACE” C - MAD TEAM

ABC

問題 atcoder.jp 考察 基本方針は 5種類すべての能力がチーム全体として以上にできる3人の組み合わせが存在するかを二分探索で探っていく。3人のチーム全体の各能力は以下の通り、3人の能力の最大値となる。 そして、チームの総合力は以下の通り、チーム全体…

ZONeエナジー プログラミングコンテスト “HELLO SPACE” D - 宇宙人からのメッセージ

ABC

問題 atcoder.jp 考察 重要な点は 文字列反転のコストをどう工夫するか 連続した2文字が同じ文字の場合の削除のコストをどう工夫するか 文字列反転については 文字追加の操作を行いながら、反転しているかどうかの状態を持っておき 反転している場合は文字列…

ZONeエナジー プログラミングコンテスト “HELLO SPACE” B - 友好の印

ABC

問題 atcoder.jp 考察 コンテスト本番では上る高さを二分探索で決めて、UFOからその上った高さの位置までの直線を 一次関数y = ax + bの式に当てはめて、各iについて、x = d[i]の時にh[i]以上かどうかで探索していた。 これだと実装が複雑になるし、バグも出…

AtCoder Beginner Contest 190 D - Staircase Sequences

ABC

問題 atcoder.jp 考察 まず、公差1の等差数列の総和の特性を見つけるために 公差1の等差数列の総和を求める式を考える。総和をN、初項をA、項数をLとすると 扱いやすいように両辺に2を掛けて となる。この式から は、またはで割り切れる値だということが分か…

パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) B - Many Oranges

ABC

問題 atcoder.jp 考察 重要な点としては Aグラム以上Bグラム以下というみかんの重さに下限と上限があること。 みかんの重さが整数とは限らない。 重さの合計がぴったりW(キログラム単位)であること。 みかんの個数Nが分かっている場合、 が成り立てば、N個…

AtCoder Beginner Contest 198 C - Compass Walking

ABC

問題 atcoder.jp 考察 原点(0, 0)からユークリッド距離でRずつしか移動できない。 移動先の座標は整数でなくてもよい。 ぴったり(X, Y)にたどり着かなければならない。 これがこの問題を解くときに大事なポイントだと思われる。原点(0, 0)と(X, Y)間のユーク…