2023-03-22 ABC279 の A, B, C, D, E を解いた / Seraph's Last Stand をクリアした
ABC279 : トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279) の A, B, C, D, E を解いた。
- A - wwwvvvvvv
https://atcoder.jp/contests/abc279/tasks/abc279_a
- 提出: https://atcoder.jp/contests/abc279/submissions/39950606
v
を1
にw
を2
に map して sum を取れば良い
- B - LOOKUP
https://atcoder.jp/contests/abc279/tasks/abc279_b
- 提出: https://atcoder.jp/contests/abc279/submissions/39950638
s.contains(&t)
- C - RANDOM
https://atcoder.jp/contests/abc279/tasks/abc279_c
- 提出: https://atcoder.jp/contests/abc279/submissions/39950829
- 計算量が怪しいけど、 rotate したあと HashMap で列のカウントを取って比較した
- D - Freefall
https://atcoder.jp/contests/abc279/tasks/abc279_d
- 提出: https://atcoder.jp/contests/abc279/submissions/39951554
- 三分探索
- 浮動小数点数やらいろいろ怪しいコードを書いてしまっている
- E - Cheating Amidakuji
https://atcoder.jp/contests/abc279/tasks/abc279_e
- 提出: https://atcoder.jp/contests/abc279/submissions/39952001
- 上から i 本目まで適用した際の 1 の位置を事前に求めておく
- 下から逆順に A を適用しつつ、事前に求めたものと組み合わせて答えを求める
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
m: usize,
a: [Usize1; m],
};
let mut pos1 = vec![0];
for a_i in a.iter().copied().take(m - 1) {
let x = *pos1.last().unwrap();
let next = if x == a_i {
a_i + 1
} else if x == a_i + 1 {
a_i
} else {
x
};
pos1.push(next);
}
let mut ans = vec![0_usize; m];
let mut s = (0..n).collect::<Vec<usize>>();
for (i, a_i) in a.into_iter().enumerate().rev() {
ans[i] = s[pos1[i]];
s.swap(a_i, a_i + 1);
}
for a in ans {
println!("{}", a + 1);
}
}
bouzuya/tsukota に削除機能を追加した。
『 Seraph's Last Stand 』をクリアした。ネタバレ注意。
- プレイ時間: 16.5h
- 実績コンプリート
- リロール無料になるアセンションが強い
- エピックが 5% で出るアセンションとリロール無料のアセンションで任意のカードを引ける
- 毎 wave コモンを追加で得られるアセンションが強い
- ただし移動速度などがどんどん上がってしまい回避不可能になる
- 負傷と貫通の組み合わせも強い
- 負傷を実質攻撃力代わりにしていた
- wave 80 あたりから処理が追いつかなくなる
今日のコミット。