C++による基本プログラミング問題の解法

問題 1000: 2つの整数の合計 問題概要 2つの整数 a と b を読み込み、それらの合計を出力してください。 C++ コード例 #include <iostream> // 標準入出力ライブラリをインクルード int main() { int value1, value2; // 2つの整数値を格納する変数を宣言 // 標準入力から2つの整数値を読み込む std::cin >> value1 >> value2; // 読み込んだ2つ ...

7月2日 17:38 投稿

競技プログラミング問題集: 生成器、MEX、XORの応用

理想的な生成器の判定 正整数kが「理想生成器」であるとは、任意の整数n(n ≥ k)が、長さkの回文配列の要素和として表現可能な場合を指す。回文配列とは、配列aがa1からakまでとakからa1までが同一となる配列である。例として、k=1は理想生成器である(nは[n]で表現可能)が、k=2は非理想(3を表現不可能)。 解法: kが奇数の場合のみ理想生成器となる。偶数の場合、配列 ...

6月26日 21:45 投稿

競技プログラミングコンテスト問題の解法解説

円周率日チャレンジ Pythonの高精度計算を活用する問題。浮動小数点数の精度問題を回避するため、整数演算で処理する。 n = int(input()) pi_value = 31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 results = [] for _ in range(n): numerator, denominator = map(int, input().split()) approx = nume ...

6月15日 16:47 投稿

競技プログラミング問題解説: EPIC Institute of Technology 2025

配列操作と最適化アルゴリズムの応用 A. 順序逆転検出 要素順を変更して、新しい配列を作成し、その配列が元の配列と異なる順序になるようにする問題です。 #include <vector> #include <iostream> using namespace std; void findDisorder(vector<int>& arr) { for (int i = 0; i < arr.size() - 1; ++i) { if (arr[i] > arr[i + 1]) ...

6月13日 22:16 投稿

競技プログラミング問題集 SMU Spring 2023

A. 重複要素の削除 与えられた数列から重複要素を削除し、最初に出現した要素のみを保持するアルゴリズム。 #include <iostream> #include <vector> #include <unordered_map> using namespace std; vector<int> removeDuplicates(const vector<int>& nums) { unordered_map<int, int> countMap; vector<int> result ...

5月29日 14:24 投稿

Codeforces 920 (div3) 解法まとめ

問題 A - Codeforces 入力された四つの座標から、正方形の面積を求める問題です。各辺が軸に平行な正方形かどうかを判定し、辺の長さを計算して面積を求めます。 #include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { int cases; cin >> cases; while(cases--) { int x1, y1, x2, y2, x3, y3, x4, y4; ...

5月25日 02:21 投稿

CSP-Sで出題される可能性のあるテンプレート集(非原创、各所からまとめ)

CSP-Sの点数を上げるためのテンプレート集 数学 高速累乗 int pow_mod(int base, int exp) { int result = 1; while (exp > 0) { if (exp & 1) result = (result * base) % MOD; base = (base * base) % MOD; exp >>= 1; } return result; } ルーカスの定理(逆元の線形計算付き) int inv[N], fact[N], fact_inv[N ...

5月22日 01:39 投稿

Codeforces Round 895 (Div. 3) 解法概要

CF1872B 通路の限界 問題概要 一列に並んだ部屋のうち、いくつかには罠があります。各罠のある部屋には、到達可能な時間の制限があります。プレイヤーは1番目の部屋から最大で何番目の部屋まで往復できるかを求めます。 解法 各罠部屋の到達可能な最大位置を計算します。この位置は、罠の発生時間の半分を基準に計算されます。すべての罠部屋を距離順にソートし、途中で到 ...

5月18日 19:20 投稿