壁とかパズルとか

パズルと将棋とボルダリングとダイビングが趣味です。

Java

n個からk個取る組み合わせを全探索したいときメモ

bit全探索に慣れたい。 蟻本より、n個からk個取る組み合わせのJava版 public class Main { public static void main(String[] args){ int n = 4; int k = 2; int comb = (1<<k) -1; while(comb < 1 << n){ System.out.println(Integer.toString(comb,2)); int x = comb & -comb; int y = comb + x; comb = ( (comb & ~y) / x >> 1 ) | y; } } } /* 11 1…</k)>

C - N進数

CODE FESTIVAL 2014 決勝 - AtCoder 20200519のあさかつで出た問題 概要 10以上の整数 に対して、進数で表したときと表せる数をとする。 与えられた整数に対して、 と表すことができるが存在すればを出力。 なければを出力せよ。 制約 方針 の性質より、調べ…

C - Numbering Blocks

問題文:C - Numbering Blocks 解説を見ると全探索か深さ優先探索で解いている人が多く、DPで解いている人があまりいなさそうだったのでメモを残します。 考察 以下のイメージです。 dp[i][j][k]を次で定義する のときの条件を満たす数字の書き込み方の数 DP…

優先度付きキューメモ

Javaで優先度付きキューを取り扱うときに毎回調べている気がする。メモする。 - PriorityQueue (Java Platform SE 8 ) Queue<Integer> que = new PriorityQueue<>(); que.add(3); que.add(1); que.add(4); que.add(1); que.add(5); while(!que.isEmpty()){ int i = qu</integer>…