LoginSignup
0
0

More than 3 years have passed since last update.

javaでAtCoder Beginner Contest 151を解く

Last updated at Posted at 2020-01-12

AtCoder Beginner Contest 151お疲れ様でした!
公式ページ

今回の自分の書いたコードはこちら
以下簡単に解説します。

問題A

入力文字列の次のアルファベットを出力する問題。
javaのcharはインクリメントすると次のcharになることを知っていたので、そのまま記載。

問題B

テストの点数が与えられ、目標点に到達するには何点とればよいか、という問題。
テストの点数を順番に足していって、目標点と引き算すればOKです。

目標点に頑張っても到達できない場合と既に到達している場合があるので、注意。

問題C

個人的にちょっと骨がありました。
問題番号とACWAが与えられ、正解した問題数とペナルティ数を数える問題。

ペナルティ数は正解した問題にしか適用されないので注意。(これで一度不正解なってしまいました。)

問題D

手つけてません

問題E

数の組み合わせから特定の数を選んで、その最大値と最小値の差を、組み合わせの数だけ足し合わせる問題。
最大値と最小値を別々に求める発想にいたらず、TLEでした。

コンテスト後に最大値と最小値別々に求めるように変更したらTLEがなおらないままWAになって迷宮入りしたので、あきらめました。
最大値と最小値を別々に求めるって考え方があるって学べたからヨシとします。(二項係数の算出方法が遅いのかな・・・)

(2020/01/16追記)
コメント欄で助言いただき、修正してACになりました!

問題F

一定の数の点を包含する最小の円の半径を求めよ、という問題。
全ての点の最大の長さを求めて半分したのですが、それでは考慮不足でした。

点の数が50だったので、多少計算量膨らんでもよいって気づけばよかった・・・残念。


残念ながら今回はじめてレーティングが下がってしまいました。
今までほぼ丸腰で挑んでいましたが、ぼちぼちセオリーを学び始めようかと思います。。

0
0
8

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