[AtCoder] ABC 032 D – ナップサック問題
整数計画法である 0-1 ナップサック問題を線形計画法で解くことを考えます。線形計画法では、重さ当たりの価値が大きいものから取っていけば良いです。ここで、荷物を重さ当たりの価値の降順になるように並び替えます。
深さ ...
[AtCoder] ARC 001 C – パズルのお手伝い
\( 8 \) クイーン問題です。深さ優先探索によって解答します。初期値が当てられたとき、配置が可能かに注意します。
コード#include <bits/stdc++.h>using namespace std;t ...
[AtCoder] ABC 165 C – Many Requirements
全ての数列のパターンに対して得点を求めます。どのように数列を生成するかですが、深さ優先探索を行います。条件を満たす数列が \( i \) 番目まで決まっているとき、\( A_{i + 1} \) の値は、\( A_{i} \l ...
[AtCoder] パナソニックプログラミングコンテスト2020 D – String Equivalence
深さ優先探索を使うらしい。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int N;void dfs(string s) ...
[yukicoder] No. 832 麻雀修行中
全探索を行って和了しているかを調べます。また、七対子は特殊な形なので、\( 7 \) 種類の対子があるのかを調べます。他の手は、\( 4 \) 面子 \( 1 \) 雀頭の形をしているかをチェックすれば良いので、まず初めに雀頭 ...
[AOJ] No. 0300 フロッピーキューブ
パズルは最大でも \( 8 \) 回の操作で解くことができるので、\( 4^7 \) 通りのパターンを調べれば良いです。したがって、深さ優先探索を行い、実際にシミュレーションを行います。
コード#include < ...
[AtCoder] ABC 145 C – Average Length
順列を生成して距離を計算します。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int a;bool flag;dou ...
[yukicoder] No. 847 Divisors of Power
\( N \) を素数 \( p_i \) と 正の整数 \( a_i \) を用いて、 \( N = p_1^{a_1}p_2^{a_2} \cdots p_n^{a_n} \) と表すと、
\ ...
[AtCoder] AISing Programming Contest 2019 C – Alternating Path
\( H \) 行 \( W \) 列のマスを持つグリッドにおける \( i \) 行 \( j \) 列目のマスの番号を \( i \times W + j \) とします。このようにマスの番号を割り当 ...
[AtCoder] ABC 119 C – Synthetic Kadomatsu
竹の本数 \( N \) は最大で \( 8 \) 本であることに注目すると、合成魔法を基準に考えていけばよいことが思いつきます。ある竹 \( i \) について、合成魔法を適用できる竹は \( 3 \) 通りで ...