สมมติมี Strings A, B และ Cost Values: CostA, CostB ต้องการหา Minimum Cost ทำให้ A และ B เหมือนกัน โดยลบ Characters Cost ลบจาก A คือ CostA จาก B คือ CostB ตัวอย่าง A="wxyz", B="wyzx", CostA=10, CostB=20 Output=30 ลบ x จากทั้งคู่ Cost=10+20=30
นี่เป็น Variation ของ Longest Common Subsequence (LCS) หา LCS Length แล้วลบออกจากความยาว A และ B จะได้จำนวน Characters ที่ต้องลบ
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
bool isRepresentedInDDigits(int num, int d, int base) {
if (d==1 && num < base)
return true;
if (d > 1 && num >= base)
return isRepresentedInDDigits(num/base, --d, base);
return false;
}
bool checkNumber(int num, int d) {
for (int base=2; base<=32; base++)
if (isRepresentedInDDigits(num, d, base))
return true;
return false;
}
int main() {
int num = 8;
int dig = 2;
if(checkNumber(num, dig))
cout << "Can be represented";
else
cout << "Can not be represented";
}
ผลลัพธ์
Can be represented