scipというプログラムを使ってみている。
入力にはLPというフォーマットを使っている。
#############
変数(整数)はいっぱい使える。
変数のとりうる領域は多元1次不等式(<=,>=,==)で指定できる。
目標の値を設定できる。
目標の値が最大(最小)になる整数解をサクっと答えを出してくれる。
前回の問題の別解をみつけた。
前回の問題はここ
パ:「または」を不等式であらわす
flag24という 「0だったらsumが2、 1だったらsumが4フラグ」 を設けると
0<=flag24<=1
で
sum == 2 * flag24 + 2
でよいのだった。
しまった。超簡単だった。
この路線でいけば
「sumが 2 か 5 だ」
0<=flag25<=1
sum == 3 * flag25 + 2
「sumが偶数だ」
flageは整数で
sum == 2 * flage
「sumが奇数だ」
flagoは整数で
sum == 2 * flago +1
「0個か2個」
0<=flag02<=1
sum == 2 * flag02;
(例えばスリザーリンクは十字点に集まる線分の数は0個か2個)