2023-04-07 ARC046 A, ABC165 A, PAST #2 D を解いた
- ARC046 A - ゾロ目数
https://atcoder.jp/contests/arc046/tasks/arc046_a
- https://atcoder.jp/contests/arc046/submissions/40390452
- 1 桁で 1..=9, 2 桁で 1..=9, ... と順に走査しつつ数えて N 番目を出力すれば OK
- ABC165 A - We Love Golf
https://atcoder.jp/contests/abc165/tasks/abc165_a
- https://atcoder.jp/contests/abc165/submissions/40390500
a..=b
でk
で試し割りすれば良い
- PAST #2 D - パターンマッチ
https://atcoder.jp/contests/past202004-open/tasks/past202004_d
- https://atcoder.jp/contests/past202004-open/submissions/40391198
- 1 桁で 27, 2 桁で 27^2, 3 桁で 27^3 すべて合わせても 20439
- それぞれに対して S とマッチするかを試しても間に合う
use proconio::{input, marker::Chars};
fn dfs(s: &[char], length: usize, t: &mut Vec<char>, count: &mut usize) {
if t.len() == length {
let mut ok = false;
for i in 0..s.len() {
if i + t.len() > s.len() {
continue;
}
let mut m = true;
for (j, p) in t.iter().copied().enumerate() {
if p != '.' && p != s[i + j] {
m = false;
}
}
ok |= m;
}
if ok {
*count += 1;
}
return;
}
for i in 0_usize..26 + 1 {
let c = if i < 26 {
(i as u8 + b'a') as char
} else {
'.'
};
t.push(c);
dfs(s, length, t, count);
t.pop();
}
}
fn main() {
input! {
s: Chars
}
let mut count = 0_usize;
for length in 1..=3 {
let mut c = 0_usize;
dfs(&s, length, &mut vec![], &mut c);
count += c;
}
let ans = count;
println!("{}", ans);
}
今日のコミット。