1. 競プロする人
  2. AtCoder Beginner Contest 074
AtCoder Beginner Contest 074

https://atcoder.jp/contests/abc074


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

B:https://atcoder.jp/contests/abc074/submissions/47438431


Atcoderホームページ:https://atcoder.jp/home
00:03
AtCoder Beginner Contest 74回目。A問題。バイクロームセルス。問題文、N×Nのマス目があります。
このマス目の各マスを白色または黒色に塗ることにしました。 すべてのマスをどちらか片方の色に塗ります。
ちょうどAマスを白色に塗るとき、黒色に塗ることになるマスはいくつあるでしょうか。
入力例1は3。3×3のマスには9個あります。そのうち入力例1、4。
出力例4個を白く塗るので、残った5マスは黒く塗ることになります。
あ、なるほどね。N×Nで与えられるAをマイナスすればいいだけかな。
たぶん。それでやってみましょうか。
Nイコールイントのインプット。
で、プリントN×N
マイナスイントインプット。
で、どうでしょうか。一回出してみましょうか。
はい、ACしたのでB問題いきます。B問題。コレクティングボールズ イージーバージョン
問題文。XY平面上にN個のボールがあります。 このうちI番目のボールの位置はXIとIです。
したがってN本の直線Yイコール1、Yイコール2、…、YイコールNの上にそれぞれ1個ずつボールがあることになります。
すぬけくんはこれらのボールを回収するためにタイプA、BのロボットをN台ずつ用意しました。
さらにタイプAのロボットのうちI台目のものを1、0、Iに。 タイプBのロボットのうちI台目のものを1、K、Iに設置しました。
したがってN本の直線YイコールNまでの上にそれぞれ1台のタイプAロボットと1台の タイプBロボットが設置されたことになります。
それぞれのタイプのロボットは起動されると以下のように動作します。 タイプAのロボットは1、0、Aで起動されると直線YイコールA上にあるボールの位置まで移動し、
ボールを回収し元の1、0、Aに戻って停止する。 そのようなボールが存在しない場合は何もせず停止する。
タイプBのロボットは1、K、Bで起動されると直線YイコールB上にあるボールの位置まで移動し、 回収し元の1、K、Bに戻る。
そのようなボールがない場合は何もせず停止。 これら2N台のロボットのうちいくつかを起動してボールをすべて回収するとき、
03:03
ロボットの移動距離の総和として考えられる値のうち最小のものを求めてください。
全く意味がわからない。 入力例、N、K、そしてXのリストが与えられますので、とりあえずそれをコードテストで入れておきましょうか。
ちょっと問題文は後で読もう。 n イコールイントのインプット。 で、Kイコールイントのインプット。
ほいで、Xイコールリストのマップのイントインプット。
.split で問題が、ボールを回収。
N個のボールがあります。 それぞれの位置。
はいはい、インデックス番号がY座標なのか。 で、Xのリストに書いてある数字がX座標と。
タイプA。 タイプAのロボットは
X座標が0。 で、Y座標はそれぞれボールがあるであろう位置。
タイプBのロボットはKというX地点なんですね。
入力例1、Nが1、Kが10。 で、Xが2なので
ボールが1個だけあり、タイプAおよびBのロボットが1つずつあります。
タイプAのロボットを用いてボールを回収すると、ボールの位置までの移動距離は2であり、元の位置に戻るための移動距離も2であるので、
合計の移動距離は4となります。 同様にタイプBのロボットを用いてボールを回収した時の移動距離の合計を計算すると、
Kが10なので、Xのボールがある座標が2なので、
10-2で8、1と変えてで合計すると16となります。 よってタイプAのロボットを用いて回収すると、合計の移動距離が最小となり、その時の移動距離である4を出力します。
では
for i in range Nの
どうしようかなぁ 何でもないところに ans 暗数を入れといて
暗数プラスイコール
06:02
min の
どうしようかなぁ x の i 番目
×2 か
abs absolute アブソリュートであってるのこれ
abs
x の i 番目- k
かな 掛けるに
プリント ans で
出るんじゃないですか 4
入力例1は4入力例2は12が出たら ok
12入力でさんは74が出たら ok
ほい 74 ok そうですね提出していきます
はい a c しました c 問題いきます c 問題 シュガーウォーター
問題分すぬけくんはビーカーに砂糖水を作ろうとしています 最初ビーカーは空です
すぬけくんは以下の4種類の操作をそれぞれ何回でも行うことができます 一度も一度も行わない操作があっても構いません
操作1ビーカーに水を100 a グラム入れる 操作にビーカーに水を100 b グラム入れる
操作3ビーカーに砂糖を c グラム入れる 操作4ビーカーに砂糖を d グラム入れる
すぬけくんの実験環境下では水100グラムあたり 砂糖は e グラム溶けます
すぬけくんはできるだけ濃度の高い砂糖水を作りたいと考えています ビーカーに入れられる物質の質量
水の質量と砂糖の質量の合計が f 以下であり ビーカーの中に砂糖を溶け残らせてはいけないとき
すぬけくんが作る砂糖水の質量とそれに溶けている砂糖の質量を求めてください 答えが複数ある場合はどれを答えても構いません
水スモール a グラムと砂糖スモール b グラムを混ぜた砂糖水の濃度は スモール a プラススモール b 分の100スモール b パーセントです
またこの問題では砂糖が全く溶けていない水も濃度0%の砂糖水と考えることにします 何のこっちゃ a b c d e f が与えられますのでとりあえずそれを
入力受け取りましょうか a b c d e f おい
09:02
マップ イントインプット
ドットスプリットで 何
入力例1 a b c d e f は12
10 20 15200出力で1は110と10何を求めるって言ってた
砂糖水の質量とそれに溶けている砂糖 この入力例の状況では水100グラムあたり砂糖は15グラム溶けます
水100グラムあたり砂糖は15グラム
a b c d e そうだね15グラム
またビーカーに物質を200グラムまで入れることができます ビーカーに入れられる物質の質量が f グラム以下
一番最後だねはい 操作1と操作3を1回ずつ行うことで
操作1と操作3は a の水と c の砂糖かな 110グラムの砂糖水を作ることができます
またこれ以上濃度の高い砂糖水を作ることはできません
a と 砂木君の実験環境下では水100グラムあたり砂糖は良いグラム溶けます
100 a グラム
どうしようかな とりあえず a と b をかけ100しておきましょうか
a かけるイコール100 b かけるイコール100で
コメントアウトでちょっとメモしとこうかな e が100グラムあたりに溶ける
e が 100グラム
あたり
ええええええ 受ける
砂糖 f が f は大丈夫だな
マックスというかその質量以下ですね
どうしようかな で濃度濃度の求め方もちょっと考えとこう
水たす砂糖 分の100砂糖
12:04
濃度 イコール
100 かけ砂糖の
割る 水たす砂糖
はい
どうしようかな できるだけ水の量は少ない方がいい
と思うので 水の量は少なく砂糖の量を多く
したいんですよね だから
100どうしようかな100グラムあたり
e を求めるやり方ってどうすんのこれ
100グラムあたり砂糖は e グラム溶けますでしょ a をかければいいのか
いいにも a をかければいいのか だから
ea と eb も作っておきましょうか ea イコール
e かける a ほんとほんとだね合ってるね a
eb イコール e かける b で
でで何すんの全然わかんないなぁ 100グラムかける砂糖
ある 水たす砂糖水たす砂糖を法文で
選択しつつ f を超えない範囲で
選んでいく マイル
ans イコール あそうかリストだから l イコールにしとこうか l イコール
15:05
00 マイル
l の 初めのインデックス数が
f 以下だったら 総出量が f 以下だったら
うーんと 溶ける水
砂糖水 スヌケくんの実験環境下では水100グラムあたり砂糖が良いグラム溶け
ます だから
そもそも a と ea b と eb が
うんと 溶ける
何分かんなくなってきた 砂糖がいいグラム溶けるのか
だから ea eb にそれぞれ c か d を入れるんだかけるんだ ですよね
のはず 違うかけるんじゃない
溶けます溶けますだから 100 a 100 b にそれぞれ c とか d をかけてそれが
e a e b より少なければ 以下だったら ok ですよか
m 2ちょっとわけわかんなくなってきた
どうしようかな 17分か
解説見るか 入所こういう問題文でちょっと惑わされる系だと
考えるの諦めちゃうんですよね 解説見ます
18:00
ビーカーにちょうど x グラムの水を入れられる必要十分条件は皮膚整数 ij が 存在して x イコール100 ai
プラス100 bj となることです 同様にビーカーに y グラムの砂糖を入れられる入れられる必要十分条件は皮膚
整数 ij が存在して y イコール ci プラス dj となることです
xy としては f 以下の値だけを考えれば良いので xy としてあり得る値はオーダー f の事情
時間かけてすべての ij を試すことで列挙できます 最後にすべての xy の組
オーダー f オーダー f 事情子しかありませんについて ビーカーに水を x グラムと砂糖 y グラム入れた時に砂糖が水にすべて溶けているかどうか
調べ溶けているものについて濃度が最大のものをとって出力すれば良いです はい
ユーザー解説も見ておきます すべての砂糖水の状態を考え濃度が一番高いものを考える
レップこれ c プラブラの方分ですね繰り返し レップ i 1 f プラス1
i という変数に1スタートで f プラス1まで かな
レップ j 0 i プラス1 では用水溶液の質量 j はそのうちの砂糖の質量である
わかんねーこの時その組み合わせが実現可能かを判定する必要があるがこれは dp を 使って実現する
dp i j 水溶液が i グラムそのうち砂糖が j グラムである状態にできるか
繊維元のいずれかの dp の値が1であればその状態の dp は1になる 操作14についてそれをチェックする
あとは砂糖がすべて溶けきっているかつ dp i j イコールイコール1かつ 砂糖が少しでも溶けているゼロ
はいではちょっと他の方の提出例 パイソンをね見ておこうと思います
なかなか溶けないですね新問題 ab はすごい スムーズに溶けるんですけどね c になった途端基礎的な
プログラミング力だったり数学力だったりがまとめられている感じがしますね ではまた次回お疲れ様です
20:44

コメント

スクロール