0.はじめに
A~Cは順調に解けましたが、Dがややこしくて回避。
Eは何とかなる!と思って取り組みましたがTLEを何とかできず時間切れ。
解説を見るとDは累積和の典型のような問題でしたし
Eももう少し考えれば行けた感じで逆に壁を感じました。
A~Cだけだった割にはレートは+19と上がってました。
1.A - Tomorrow
独自の月・日の概念を持つ国で翌日を求めるという問題。
普通に年代わり、月代わりのタイミングでないかを考慮して
日or月or年に1を加算or日or月を1に戻すという
場合分けをするロジックを組みました。
https://atcoder.jp/contests/abc331/submissions/48098753
2.B - Buy One Carton of Milk
Nの上限が100のため、6個セットでも17セット買えば事足りるため
それぞれループの組み合わせで最適解を求めました。
https://atcoder.jp/contests/abc331/submissions/48110671
3.Sum of Numbers Greater Than Me
TLEにならないための一工夫が必要な問題
リストの要素ごとにその要素以上の数の合計値を持つ
辞書を作成し、その辞書をもとにリストの値毎の要素以上の合計値を
表示することで、TLEを回避。
【実装】
1.要素数N、リストAをインプット
2.Aを降順ソートしたSAを作成
3.空辞書D(キー:A内の要素、値当該要素の以上の値の合計値)を作成
4.変数C(前要素をセット)を定義しSA[0]をセット
5.辞書Dのキー:Cに値0をセット
6.変数S(当該要素以上の数の合計)を定義し0をセット
7.以下をi=1~Nまで繰り返し
7-1.SA[i]が前要素Cと違う時
7-1-1.CにSA[i]をセット
7-1-2.D[C]にSをセット
7-1-3.SにSA[i]を加算
7-2.SA[i]が前要素Cと同じ時
7-2-1.SにSA[i]を加算
8.回答出力用リストansを定義
9.リストAを先頭から見ていき、ansにD[A[i]]を追加していく
10.ansを出力して終了
https://atcoder.jp/contests/abc331/submissions/48114642
4.D - Tile Pattern
自前では解法が全く分からず、解説を見て理解。
1)0,0から、当該マスまでの黒マス数合計が分かれば
2座標間の黒マス数を求められる
2)タイルの各マスまでの黒マス数合計が分かれば
0,0から、当該マスまでの黒マス数合計が求められる
という2つについては、解説を見たら理解できたので
実装してACを取り、次は解ける!と思いました。
https://atcoder.jp/contests/abc331/submissions/48165559
5.E - Set Meal
コンテスト時は、N*M回何かをする解法しか思いつかず
TLE×13を解消できませんでした。
コンテストの単純な解法を見て
試したところ、L個の条件を短銃んに辞書で持つだけでは
TLEが1個消せませんでしたが、値をset型にしたところ
ACとなりました。
ネックとなっている部分の見極めも重要であると感じました。
https://atcoder.jp/contests/abc331/submissions/48159370
以上