2023-07-20 genpi に --katakana を追加した / ARC114 A, B を解いた
bouzuya/genpi に機能を追加した。
- README の追加
--katakana
オプションの追加
読み仮名をひらがな→カタカナに変換するためのオプションを追加した。
Unicode の Hiragana のうち (0x3041..=0x3096)
と Katakana のうち (0x30A1..=0x30F6)
がちょうど 0x0060
ずつシフトしたものになっていることを使って簡易な変換をした。「゛」などの変換には対応しない。
ARC114 : AtCoder Regular Contest 114
- A - Not coprime
https://atcoder.jp/contests/arc114/tasks/arc114_a
- 提出: https://atcoder.jp/contests/arc114/submissions/43761024
- 素数を下から順に確かめれば良いだろうと思って 2WA
- 15 個の素数の組み合わせをすべて試して条件を満たすものを残して AC
- B - Special Subsets
https://atcoder.jp/contests/arc114/tasks/arc114_b
- 提出: https://atcoder.jp/contests/arc114/submissions/43778679
- 条件から連結成分ごとに同じグループに入れないとまずそう
- 連結成分の個数を M として連結成分ごとに使う使わないで
2^M
- ひとつも選ばない場合を除くので
2^M - 1
が答えになる
- C - Sequence Scores
https://atcoder.jp/contests/arc114/tasks/arc114_c
- 未着手
- D - Moving Pieces on Line
https://atcoder.jp/contests/arc114/tasks/arc114_d
- 未着手
- E - Paper Cutting 2
https://atcoder.jp/contests/arc114/tasks/arc114_e
- 未着手
- F - Permutation Division
https://atcoder.jp/contests/arc114/tasks/arc114_f
- 未着手
use dsu::*;
use modint::ModInt998244353 as ModInt;
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
f: [Usize1; n],
};
let mut dsu = Dsu::new(n);
for (i, f_i) in f.iter().copied().enumerate() {
dsu.merge(i, f_i);
}
let ans = ModInt::new(2).pow(dsu.groups().len() as u64) - ModInt::new(1);
println!("{}", ans);
}
// dsu
// modint
今日のコミット。
- genpi 2 commits
- rust-atcoder 1 commit