- 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 桁で 272, 3 桁で 273 すべて合わせても 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); }
今日のコミット。