2023-07-28 ABC135 A, B, C, D を解いた
bouzuya/genpi の Cloud Run へのデプロイに必要だった権限メモ。
- artifactregistry.repositories.uploadArtifacts
- iam.serviceaccounts.actAs
- run.services.get
- run.services.update
ABC135 : AtCoder Beginner Contest 135
- A - Harmony
https://atcoder.jp/contests/abc135/tasks/abc135_a
- 提出: https://atcoder.jp/contests/abc135/submissions/43998826
A - K >= 0
かつB - K >= 0
ならA - K = B - K
でA = B
になるが制約のA != B
からこのケースはないA - K >= 0
かつB - K < 0
ならA - K = -(B - K)
でA + B = 2K
になるA - K < 0
かつB - K >= 0
なら-(A - K) = B - K
でA + B = 2K
になるA - K < 0
かつB - K < 0
なら-(A - K) = -(B - K)
でA = B
になるが制約のA != B
からこのケースはない- つまり
A + B = 2K
になればよい K
は整数なのでA + B
が 2 で割り切れるときは(A + B) / 2
、そうでないときはIMPOSSIBLE
- B - 0 or 1 Swap
https://atcoder.jp/contests/abc135/tasks/abc135_b
- 提出: https://atcoder.jp/contests/abc135/submissions/43998826
P
をソートしたものとP
を比較して違う箇所が 0 (一致) または 2 個のときYES
そうでなければNO
- C - City Savers
https://atcoder.jp/contests/abc135/tasks/abc135_c
- 提出: https://atcoder.jp/contests/abc135/submissions/43998929
- 前から貪欲に処理する
- 2019-07−27 ではこの問題に 4WA しているのだけどよく分からない
- D - Digits Parade
https://atcoder.jp/contests/abc135/tasks/abc135_d
- 提出: https://atcoder.jp/contests/abc135/submissions/43998915
- あまりごとに場合の数を持つ DP
- 当時の水 diff だけどいまだと緑かも
- E - Golf
https://atcoder.jp/contests/abc135/tasks/abc135_e
- 未着手
- F - Strings of Eternity
https://atcoder.jp/contests/abc135/tasks/abc135_f
- 未着手
use proconio::{input, marker::Chars};
fn main() {
input! {
s: Chars,
};
let mut dp = vec![0_usize; 13];
dp[0] = 1_usize;
for s_i in s {
let mut next = vec![0_usize; 13];
for (j, dp_j) in dp.iter().copied().enumerate() {
for k in 0..=9 {
let ok = match s_i {
'0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => {
let d_i = s_i.to_digit(10).unwrap() as usize;
d_i == k
}
'?' => true,
_ => unreachable!(),
};
if ok {
next[(j * 10 + k) % dp.len()] += dp_j;
next[(j * 10 + k) % dp.len()] %= 1_000_000_007;
}
}
}
dp = next;
}
let ans = dp[5];
println!("{}", ans);
}
今日のコミット。
- genpi 1 commit
- rust-atcoder 1 commit