これが問題です:
同じ長さの2つの配列AとBがあります。次のように、それらを2つのグループPとQに分割する必要があります。(1)それらの差が最小化される。(2)A [i]がPまたはQのいずれかに入る場合、B[i]は別の中に入る必要があります。
実際の問題へのリンクは次のとおりです。http://opc.iarcs.org.in/index.php/problems/EQGIFTS
これが私の論理です(実際の問題を解決するため):
入力がabcdefgの場合、値のリストとa、b、c、d、e、fのインデックスはそれぞれ0、1、2、3、4、5です。
tがa、b、c、d、e、f、gのインデックスである場合、プログラムは次のようにtとiをチェックします。 = 1であり、iの値を1増やし、tの値を1減らします。
一致するものが見つかるとすぐに、両方のインデックスの値を交換し、[t-1]から始まる値を並べ替えます。結果の値のリストが出力になります。
このアルゴリズムの何が問題なのかはわかりませんが、すべてのテストケースで間違った答えが返されます。私はそれが動的計画法を使用して解決できること、そしてそれがパーティション問題のバリエーションであることを知っています。しかし、この問題を解決するためにパーティションアルゴリズムを変更する方法がわかりません。