[AtCoder] ABC 172 D – Sum of Divisors
エラトステネスの篩のような考え方で約数を数え上げます。
\( i \) の約数の個数 \( a(i)\) とすると、\( 1 \leq ij \leq 10^7 \) を満たす、\( 1 \leq i \leq 1 ...
[AtCoder] ABC 172 C – Tsundoku
机 \( A \) の本を \( i \) 冊読んだとき、机 \( B \) の本を最大でいくつ読むことができるかを考えます。机 \( A \) の本を \( i \) 冊読むのにかかる時間は、累積和で求めるこ ...
[AtCoder] ABC 171 D – Replacing
数列の要素の頻度を管理することで、各操作における偏差が計算できます。偏差が計算できれば、操作後の数列の総和を求められます。
コード#include <bits/stdc++.h>using namespace st ...
[AtCoder] ABC 171 C – One Quadrillion and One Dalmatians
\( 10 \) 進数を \( 26 \) 進数に対応させるようにして考えます。
コード#include <bits/stdc++.h>using namespace std;typedef long long l ...
[AtCoder] ABC 170 D – Not Divisible
数列に \( 1 \) が含まれるとき、\( 1 \) の個数が \( 1 \) ならば、答えは \( 1 \) であり、複数あれば答えは \( 0 \) となります。次に、数列に \( 1 \) が含まれない場合を考えます。 ...
[AtCoder] ABC 170 C – Forbidden List
愚直に全探索します。探索範囲は、\( \) で十分です。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int main( ...
[AtCoder] ABC 169 D – Div Game
任意の素数 \( p\) について \( N \bmod p^m = 0\) となるような最大の正の整数 \( m \) が求められたとします。この素数 \( p\) に関して、操作回数を最大化するには、\( c = 1, 2 ...
[AtCoder] ABC 169 C – Multiplication 3
オーバーフローが問題となるので、整数部と小数部に分けて計算します。\( B \) を \(100\) 倍する方法だと誤差がでるので、文字列として扱います。
コード#include <bits/stdc++.h>us ...
[AtCoder] ABC 168 D – .. (Double Dots)
幅優先探索で迷路を解くような感じで考えます。始点 \( 1 \) から幅優先探索を行い、到達した部屋の道しるべは、直前に来た部屋となります。隣接リストを作成し、到達した部屋のフラグを管理することで探索を行います。
コード ...
[AtCoder] ABC 168 C – : (Colon)
余弦定理を使います。時針は \( M \) の値に影響を受けることに注意すると、\(1\) 時間で \(30^\circ \) 動くので、
\
動きます。
コード#include <bits ...