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 投稿