bouzuya.hatenablog.com

ぼうずやのにっき

genpi に --katakana を追加した / ARC114 A, B を解いた

bouzuya/genpi に機能を追加した。

  • README の追加
  • --katakana オプションの追加

読み仮名をひらがな→カタカナに変換するためのオプションを追加した。

Unicode の Hiragana のうち (0x3041..=0x3096) と Katakana のうち (0x30A1..=0x30F6) がちょうど 0x0060 ずつシフトしたものになっていることを使って簡易な変換をした。「゛」などの変換には対応しない。


ARC114 : AtCoder Regular Contest 114

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

今日のコミット。