1. 競プロする人
  2. AtCoder Beginner Contest 130
2024-01-05 11:56

AtCoder Beginner Contest 130

エピソードをシェアする

Share on X Share on Facebook Share on Threads
spotify apple_podcasts youtube
AtCoder Beginner Contest 130

https://atcoder.jp/contests/abc130


↓の提出コードを見ながらの聴取を推奨いたします
A:https://atcoder.jp/contests/abc130/submissions/46420705

B:https://atcoder.jp/contests/abc130/submissions/46420793


Atcoderホームページ:https://atcoder.jp/home

サマリー

AtCoder Beginner Contest 130回目のA問題では、XとAの値によって条件分岐して出力します。B問題では数直線上でボールが跳ねる回数を求めます。C問題では与えられた点と長方形の中心を通る直線で長方形を分割する場合の面積を求めます。与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割されます。1番目の答えは面積の半分を常に答えればいいです。2番目の答えは対角線の交点が与えられた点であれば、どんな直線でも2等分になるので、答えは1です。

AtCoder Beginner Contest 130回目のA問題
AtCoder Beginner Contest 130回目、A問題、ラウンディング。問題文、X、Aは0以上9以下の整数です。XがA未満のとき0、A以上のとき10を出力してください。
そのままですね。XとAを受け取ります。
A、L数10で提出。
A、C、B問題いきます。B問題、バウンディング。問題文、数直線上をNプラス1回跳ねるボールがあり、1回目は座標DIイコール0。
I回目は座標DIイコールDI-1プラスL-1。Iは2以上Nプラス1以下で跳ねます。
数直線の座標がX以下の領域でボールが跳ねる回数は何回でしょうか?
数直線の座標がX以下の領域。
おー、あー、そういうこと?
NとXと、で、2行目にLの数列が与えられます。とりあえずコードテストを入れましょうか。
NXLね。
NXイコールマップ。
イント、インプット、ドット、スプリット。
で、Lイコールリストのさっきと同じマップイント、インプット、スプリットをコピペしちゃいましょう。
で、入力例が36-345。
出力例は2。
ボールは順に座標0、3、7。
12で跳ねるので、座標6以下の領域で跳ねる回数は2回です。
ほー。
だから、えっと、
アンスイコール0を用意しておいて、1回目のバウンド。
0たす3、3たす4で7。
で、7たす5で12っていう計算ですね。
えー、なのでどうしようかな。
ファイルや、んーと、ま、いっか、4を、iインレンジ、N回、アンス、ドット、アペンド、えー、Lの5番目プラス、アンスの5番目。
で、1回プリントアンスで確認。
0、3、7、12ですね。
で、えーと、これ。
AtCoder Beginner Contest 130回目のC問題
んー、なんか1行でできそうな気がするんですが、ちょっとわかんないので。
CNTイコール0。
えー、4i。
いや、ていうか、この変数の中にやったらいいか。
CNTイコール0を4行目ぐらいに入れといて、
アンスドット、アペンド、Lのi番目プラス、アンスのi番目。
で、if。
えーと、Lプラス、Lのi番目とアンスのi番目を、tmpという変数に入れてしまいましょう。
いちいち書くの面倒なので。
4iインレンジN。
で、tmpイコールLのi番目プラス、アンスのi番目。
で、アンスにドットアペンド、tmpして、if、tmpがx以下だったら、
CNTプラス。
イコール1。
で、elseもブレークしちゃっていいや。
で、プリント、CNTかな。
あら、出力1になっちゃった。
なんで?
えーと、tmp。
あれ?なんで?
プリント、tmpで確認しましょう。
3。
数直線上Nプラス1回跳ねるボールがあり、
1回跳ねるボールがあり、
1回目は座標。
数直線の座標がx以下の領域でボールが跳ねる。
座標6以下の領域で跳ねる回数が2回です。
あ、そうか。
CNTは1からスタートか。
0スタートなので。
なので、これは答え2ですね。
で、入力例2は出力4が出たらOK。
うん。
出たので、提出していきます。
はい。
はい。
Cしたので、C問題いきまーす。
C問題。
リクタングルカッティング。
問題文。
平面上に長方形があり、4つの頂点の座標は、
00、W0、WH、0Hです。
この長方形の内部、または周上の点、XYが与えられます。
XYを通る直線で、長方形を2つの部分に分割するとき、
面積の大きくない方の面積の最大値を求めてください。
また、その最大値を達成する分割の方法が複数あるかも判定してください。
W、H、X、Yが与えられます。
はじめに、面積の大きくない方の面積の最大値を出力せよ。
続いて、その最大値を達成する分割の方法が複数あるなら1を、そうでないなら0を出力せよ。
出力された面積は、絶対誤差、あるいは相対誤差が10のマイナス9乗以下のとき正当と判定される。
いいよ。
X、Yを通る直線で長方形を2つの部分に分割するとき。
ちんぷんかんぷんですね。
迷わず解説を読んでいくスタイル。
C問題。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分けるとき、
大きくない方の面積は全体に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の切断
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
直線の分割方法
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
与えられた点X、Yと長方形の中心を両方通るような直線で長方形を切って2つの部分に分割される。
そのため、1番目の答えは面積の半分を常に答えればいい。
2番目の答えは対角線の交点が与えられた点であれば、どんな直線でも2等分になるので1。
そうでないなら対角線の交点を通らない直線はダメなので0。
交点っていうのがどうやって求めるのがいいんだろうな。
これもちょっとPythonで調べてみましょうか。
そうか、とりあえず面積の方は1個面積を求めて半分を出せばOKだったんですね。
じゃあちょっと他の方のコード例を見ておきます。
ではまた次回お疲れ様です。
11:56

コメント

スクロール