Quiz
https://yukicoder.me/problems/no/747
AC Code
https://yukicoder.me/submissions/353782
文字列のmod
- 前提:10000桁などはlong longに収まらないので文字列として受け取って処理する
そういう巨大な数のmod2, mod3, mod6の求め方は以下
mod 2
- 1の位を見れば簡単
- mod 3
- 「全桁の和==3の倍数なら、その数値は3の倍数」
- (例 111111は3の倍数)
- を利用すると、和 mod 3から求まる
- 「全桁の和==3の倍数なら、その数値は3の倍数」
- mod 6
- mod 2, mod 3を利用すれば求まる
ll mod6(ll mod2, ll mod3){ if(mod2==0 && mod3==0) return 0; if(mod2==1 && mod3==1) return 1; if(mod2==0 && mod3==2) return 2; if(mod2==1 && mod3==0) return 3; if(mod2==0 && mod3==1) return 4; if(mod2==1 && mod3==2) return 5; }
k=101000000 を文字列で受け取ってmod
ll bigMod(string s, ll mod){ int tmp=0; FOR(i, 0, s.size()){ tmp = (tmp*10+s[i]-'0') % mod; } return tmp; }
- verified
- D - へんてこ辞書
- https://atcoder.jp/contests/abc030/submissions/8191541