0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0.はじめに

 2026年最初のコンテストとに臨む今日この頃。
 ABのあと、Cでブレーキ。どうしても解けないのでDを見たところ
 意外と行けそうだったんでそちらに取り掛かったところ何とか正解。
 Cは結局解けず時間切れとなりました。

 3問正解だったのでちょっとだけレートは上がり、+4の748と微増で
 2026年のスタートを切りました。

1. A - 2^n - 2*n

 小手調べ的な問題。
 Nを入力して指示通り計算し出力してACとなりました。

 https://atcoder.jp/contests/abc439/submissions/72167124

2.B - Happy Number

 急に難し気な問題。ハッピー数を求める計算を用意し
 インプットしたNから計算を繰り返していく考えでよいとは思いましたが
 ポイントとしてはどのタイミングでくりかえしをストップするかという点でした。
 結局セットを用意して、ハッピー数を計算した数字をとっておき
 前に計算した数字だったら終了としました。

 【実装】
  1.Nを入力
  2.セットYを初期化
  3.YにNが含まれない間以下を実行
   -1.Nを文字列化し、1文字ずつリストSにセット
   -2.変数now(ループ内のNからハッピー数を求めるための変数)を0で初期化
   -3.Sを1文字ずつ読み込み、int化したのち2乗しnowに加算
   -4.nowが1の時Yesを出力して終了
   -5.YにNを追加
   -6.Nをnowで置き換え
  4.ループを抜けたらNoを出力して終了

 https://atcoder.jp/contests/abc439/submissions/72179059

3.C - 2026

 何を血迷ったか最初に平方数を列挙して組み合わせて作れる数字を
 列挙して・・・と、TLEな上にWAまで出る状況だったのでスルー。
 コンテスト後解説をみて解けました。(解答丸写しですが。)

 【実装】
  1.Nを入力
  2.リストC(N+1個の値を持つ)を0で初期化。
   (1~Nまでの数字が、x2乗+Y2乗の式で作成できる個数を保持)
  3.変数xを1で初期化
  4.以下、xの2乗がN以下の間繰り返し
   -1.yにx+1をセット
   -2.以下、xの2乗+yの2乗がN以下の間繰り返し
    -1.C[xの2乗+yの2乗]に1を加算
    -2.yに1加算
   -3.xに1加算
  5.回答用リストansを空で初期化
  6.以下iを1からNまで繰り返し
   -1.C[i]が1の時ansにiを追加
  7.ansの個数と内容を出力して終了

 元のも同じくらいの計算量な気がしてましたが全然違いました・・・。

 https://atcoder.jp/contests/abc439/submissions/72220986

4.D - Kadomatsu Subsequence

 さっとみて行けそうかと思い取り掛かりました。
 【考え方】
  1.リストの値が3、5、7で割り切れる時
   割る値それぞれの辞書を用意し割った値をキー、リストでの位置を値(リスト化)にセット
  2.5で割り切れた値の辞書からキーと値のリストを取り出し
   値のリストそれぞれについて、3、7ぞれぞれの辞書の同じキーのリストから
   5の辞書の位置から前にある、3の辞書の値の個数×7の辞書の値の個数と
   5の辞書の位置から後ろにある、3の辞書の値の個数×7の辞書の値の個数を
   合計していき最後にその値を出力
   →5で割り切れる値の前にあるか後ろにあるかの条件が共通していれば
    jがminかmaxにある状態と言える

 defaultdictやbisectを駆使してなんとかACをもらえました。
 
 https://atcoder.jp/contests/abc439/submissions/72213991

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?