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