LoginSignup
0
0

More than 3 years have passed since last update.

javaでM-SOLUTIONS プロコンオープン 2020を解く

Posted at

M-SOLUTIONS プロコンオープン 2020お疲れ様でした!
公式ページ

今回の自分の書いたコードはこちら
結果はA-DまでACできました。なんとか4問ACでした、問題Dに苦戦しました・・・

以下簡単に解説します。

問題A

特定の点数の時に何級という条件を求める問題。
そのままif文でもいいですが、よく見ると200点区切りになっているので、
点数を200で割った余りを10から引くと簡単に求められます。

問題B

数字が3つ与えられて、数字を倍にする操作をK回以内に
赤の数字<緑の数字<青の数字・・・(条件*)
にできるかという問題。

数字が7以下だったので、もう単純に条件*を満たすための操作数をカウントして、Kと比較して回答しました。

問題C

テストの点数が直近K回の掛け算で与えられ、テストの点が上がったかを判定する問題。
直近K回の掛け算といっても、かけられるK個の数のうちK-1個は共通です。

A × B × C × D \\
B × C × D × E

上の図の場合、AとEを比較すればOKです。

問題D

株価の変動が与えられ、どれくらい儲けられるかという問題。
いまいち解き方には自信がないのですが、これも期間が80ということで、地道に解きました。

  • 株価の極小値を求める
  • 持っている金額で株価を買う
  • 株価の極大値を求める
  • 持っている株を全て売り払う

というのをwhile文でループさせました。

あと、これ桁あふれでWAになりましたので、longに変えました。
なかなか桁あふれするって気づかなかったです。

問題E

正答率低かったので問題も読んでいません、、、

問題F

200000という制約が無理!
N^2の計算量であれば解けましたが・・・まあ間に合わないでしょう。


感想

めっちゃ久しぶりに参加できました。。やっぱり楽しいですね。
レーティングは978→967とサボってたツケが回ってきましたかね・・・次回で1000奪還したい:cry:

E問題が難しいのもあって、D問題までのスピードがいまいちだったのも残念、、

最後まで読んでくださり、ありがとうございます!

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