0
0

More than 1 year has passed since last update.

ABC284回答メモ

Last updated at Posted at 2023-01-10

0.はじめに
 年明け早々に帯状疱疹になり、痛みに耐えて頑張りました。
 Cは今一攻め切れなさそうだったので、Dからやったら
 解けたので、年始一発目としては満足です。

1.A - Sequence of Strings
 あまりきれいに答えようとせず
 シンプルに考えて、回答しました。

 頭から保存していって、出力を後ろからにしました。
 

for i in range(N):
    print(list[N-i-1])

 https://atcoder.jp/contests/abc284/submissions/37797242

2.B - Multi Test Cases
 問題文通り、1つの入力で複数のテストケースを裁くだけの簡単なお仕事でした。

 https://atcoder.jp/contests/abc284/submissions/37802076

3.C - Count Connected Components
 ははーん。これは頓知的な問題で、辺数が頂点数以上なら
 全部つながっているし、それ以下なら、辺数-頂点数の固まりになるんだな!
 と、回答しましたがWA。

 ま、まぁ、3角形とかが出来てるケースを考えればダメなのは
 わかるんですが・・・。
 一筋縄ではいかないと思いスキップ(戻ってきませんでしたが)

 後日回答。
 普通に、辺を2次配列に格納し、再帰関数でつながっている固まりを
 カウントしてAC。
 落ち着いてやれば時間内に行けたかもなと後悔。

 https://atcoder.jp/contests/abc284/submissions/37958467

4.D - Happy New Year 2023
 ぱっと見簡単に見えたので着手したもののTLEの解消にてこずりました。
 それでも時間内にACがもらえたので満足感のある問題でした。

 2個

 考え方1
 素因数分解で素数と個数を求める関数をググってもってくる。
 2個必要な素数pと1個の素数qが分かるので表示!
 →予想した通りTLEでした。

 考え方2
 素数表を作りその2乗で入力数を割っていき
 割り切れたら、その素数がp、商がq!

 →制限秒数で計算可能な素数の上限が7桁だったため、上記の方法では足りずWA。

 考え方3
  1)7桁までの数字で素数表を作る
  2)Nを素数表で割っていく
  3)n%xが0の時n/xをさらにxで割る
   3-1)割り切れた場合
    ・xがp、n/x/xがq
   3-2)割り切れない場合
    ・xがq、n/xよりsqrt関数で平方根を求めその数がp
 なんとかAC頂けました。
 
 https://atcoder.jp/contests/abc284/submissions/37835114
 
 後日解説を見たら、素数を求めずとも、pqどちらかがnの3平方内に収まることを
 利用すれば解けることを知りました・・・。まぁとけたからいいか・・・

以上

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