AtCoder,数学

問題方針

排他的論理和 xor を \( \oplus \) で表現します。\( i \) 番目のスカーフの番号を \( b_i \) とすると、

\

ここで、\( a_i \) の排他的論理和を考えます。

AtCoder,数え上げ

問題方針

エラトステネスの篩のような考え方で約数を数え上げます。

\( i \) の約数の個数 \( a(i)\) とすると、\( 1 \leq ij \leq 10^7 \) を満たす、\( 1 \leq i \leq 1 ...

数え上げ

問題方針

数列の要素の頻度を管理することで、各操作における偏差が計算できます。偏差が計算できれば、操作後の数列の総和を求められます。

コード#include <bits/stdc++.h>using namespace st ...

AtCoder,数学

問題方針

\( 10 \) 進数を \( 26 \) 進数に対応させるようにして考えます。

コード#include <bits/stdc++.h>using namespace std;typedef long long l ...

AtCoder,数学

問題方針

数列に \( 1 \) が含まれるとき、\( 1 \) の個数が \( 1 \) ならば、答えは \( 1 \) であり、複数あれば答えは \( 0 \) となります。次に、数列に \( 1 \) が含まれない場合を考えます。 ...

AtCoder,二分探索,数学

問題方針

任意の素数 \( p\) について \( N \bmod p^m = 0\) となるような最大の正の整数 \( m \) が求められたとします。この素数 \( p\) に関して、操作回数を最大化するには、\( c = 1, 2 ...

AtCoder,数学

問題方針

オーバーフローが問題となるので、整数部と小数部に分けて計算します。\( B \) を \(100\) 倍する方法だと誤差がでるので、文字列として扱います。

コード#include <bits/stdc++.h>us ...

AtCoder,数学

問題方針

余弦定理を使います。時針は \( M \) の値に影響を受けることに注意すると、\(1\) 時間で \(30^\circ \) 動くので、

\

動きます。

コード#include <bits ...

AtCoder,数学

問題方針

\( y = x^5 \) というグラフを考えると、発散するスピードが速いことが分かります。よって、\( A , B\) という値は、\( X \) に比べて非常に小さい値を取ることが想像できます。これは、\( y = (x ...

AtCoder,数え上げ

問題方針

展望台 \( i \) が隣接している全ての展望台の中で一番高いかどうかという情報を求めます。これは、全ての道について、\( H(A_i) \) と \( H(B_i) \) という値を比較すれば十分です。

コード#in ...