kichi2004's BLOG

競技プログラミングの参加記とか日常とか。(※Google Analyticsを使用しています)

競プロ

「AtCoder Beginner Contest 127」に参加しました

投稿日:

コンテストページはこちら

結果

4完 [A(100), B(200), C(300), D(400)] 57:43 ペナルティ: 0
・順位: 751位 (Rated)
・パフォーマンス: 1466
・Rating変化: 1272 -> 1293 (+21) [Rating最高値]

各問題の解法

A問題 (100点)

提出詳細
計算量 O(1)

int A, B;
cin >> A >> B;
if (A < 6) B = 0;
else if (A < 13) B /= 2;
cout << B << endl;

B問題 (200点)

提出詳細
計算量 O(1)

int r, D, x;
cin >> r >> D >> x;
for (int i = 0; i < 10; i++) {
  x = x * r - D;
  cout << x << endl;
}

C問題 (300点)

提出詳細
max(Rの最小値 – Lの最大値 + 1, 0)

計算量 O(N)

int N, M, Lmax = -1, Rmin = 100010, L, R;
cin >> N >> M;

for(int i = 0; i < M ; i++) {
  cin >> L >> R;
  Lmax = max(L, Lmax);
  Rmin = min(R, Rmin);
}
cout << max(0, Rmin - Lmax + 1) << endl;

D問題 (400点)

提出詳細
Aについては、A[i]と書いたカードが1枚。
B, Cについては、C[i]と書いたカードがB[i]枚あると考える。
カードの数字が大きい順に取っていけばOK.
今回は優先度付きキューを採用したが、vectorに突っ込んでソートしてもOK.

int N, M;
cin >> N >> M;
std::priority_queue<pair<int, int>> queue;
for (int i = 0; i < N; i++) {
  int A;
  cin >> A;
  queue.emplace(A, 1);
}
for (int i = 0; i < M; i++) {
  int B, C;
  cin >> B >> C;
  queue.emplace(C, B);
}

long long ans = 0;
for (int i = 0; i < N; i++) {
  auto p = queue.top();
  queue.pop();
  ans += p.first;
  if (--p.second > 0)
    queue.push(p);
}
cout << ans << endl;

感想

久々のRatedコンテストでした。
+21ということで、まずまずの結果。もうちょっと早く解けたら良かったかな…!

-競プロ

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

「AtCoder Beginner Contest 128」に参加しました

コンテストページはこちら 結果 4完 [A(100), B(200), C(300), D(400)] 72:50 ペナルティ: 4 (-> 92:00) ・順位: 896位 (Rated) ・パフォ …

no image

JOI 2020 / 2021 二次予選 参加記

はじめに おひさしぶりです.kichi2004 です.競プロ関係の記事は今年の 3 月以来 9 か月ぶりなので,まずはそれについて簡単にお話します.今年の 2 月に,JOI に二次予選落ちしたことや …

no image

「AtCoder Grand Contest 033」に参加しました

コンテストページはこちら 結果 2完 [A(300), B(600)] 139:48 ペナルティ: 7 (139:48 -> 174:48) ・順位: 817位 (Rated) ・パフォーマンス: 1 …

no image

「第3回 RCO日本橋ハーフマラソン 予選」に参加しました

コンテストページはこちら 結果:133位(A: 147位、B: 108位) A: 286,823点、B: 493,349点 予選突破はできませんでした。(ほぼ確実) 各問題の考察 A問題 (画像:in …

no image

「AtCoder Beginner Contest 138」に参加しました

コンテストページはこちら 結果 5完 [A(100), B(200), C(300), D(400), E(500)] 20:16 ペナルティ: 0 ・順位: 84位 (Rated内39位) [ABC …