パナソニックプログラミングコンテスト2020 感想&反省
先に言いますと、爆死しました....Orz
なぜか?今回の問題、異様な難易度だったことはすでに裏付けられます。なぜなら仕組みがはっきりわからない人だとこのような図を描く羽目になってしまうのです...
ABCってこんなに実装大変だったっけ?
— _ℝ ute_ (@rute_not_route) March 14, 2020
B問題の実装これくらいの絵を書きましたOrz#atcoder
Aはls[K-1]で瞬殺やったのに...Orz pic.twitter.com/XcTegUXf8s
さて、反省ばかりしているわけにも行きませんので今回の問題を振り返りましょう。
A問題
https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_a
Kth Turm
はい。配列をlsとおいてls]で瞬殺。
B問題
https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_b
最初、こんな考察をしていました。ところが何度やってもWAになってしまいました。
H = 行の数とし、奇数・偶数 W = 列の数とし、奇数・偶数 の時で考える
H = 奇数 W = 奇数の時(入力例2)
→(列の数を2で割った商+1)*(列の数を2で割った商+1)
+ (列の数を2で割った商)*(列の数を2で割った商)
つまり (H×W)//2+1に一致
H = 奇数 W = 偶数の時 (例 H = 7 W = 4 )
→(列の数を2で割った商+1)*(列の数を2で割った商)
+ (列の数を2で割った商)*(列の数を2で割った商)
これはH×W//2に一致します
H = 偶数 W = 奇数の時 (入力例1)
→(行の数を2で割った商)*(列の数を2で割った商+1)
+(行の数を2で割った商)*(列の数を2で割った商)
これは (H*W)//2
H = 偶数 W = 偶数の時
→(行の数)*(列の数を2で割った商)
これは(H*W)//2
何がおかしいか何度か確認すると、列・行の数が1または2のとき以下のようになることに気づきました。
列の数・または行の数が1のとき 駒は動けないから1通り
列の数・または行の数が2のとき
H = 2ならばW通り W = 2ならばH通り
これでようやくACしました。70分もかかったので順位は相当低いですorz
C問題
math.sqrt(a)+math.sqrt(b) < math.sqrt(c) や
a**(1/2)+b**(1/2)<c**(1/2) かを愚直に判定してやってみるも、なぜかWA。
これについてはよくわからなかったので解説を読みます。
感想&反省は以上になります。
今回はレーティングが下がるんでしょうね....