AtCoder Beginner Contest 363 解説:アルゴリズム設計と実装
問題A:数値間隔の算出
入力値 $R$ が属する百の位区間を特定し、その区間の上限値との差分を出力する問題です。条件分岐を用いる代わりに、整数除算による切り上げ演算の特性を活用することで、簡潔な式に変換可能です。
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int current_rat ...
5月13日 15:46 投稿
桁の和がsとなるn桁の正整数の個数を求める
これは条件付きの正整数分割問題であり、直接的な計算式は存在しません。
小規模な場合は全探索が可能です。数百桁規模になると動的計画法が有効です。しかし数千桁規模では動的計画法でも数十分から数時間要します。さらに万桁規模になると、時間・空間的な制約によりPCでの計算は不可能になります。
「挿入法と包含排除原理の組み合わせ」が強力な手法です。
核心となる ...
5月12日 17:53 投稿