輸入兩個等長的串s,t(長度小於100),其中s包含字元0,1,?,t中包含0和1。有三種操作:將s中的0變為1,?變為0或1,交換s中的任意兩個字元。求將s變成t的最少步數。首先考慮去掉問號。設s中1的個數為one1,t中1的個數為one2。在one1#include using namespace std;
const int maxl=105;
int t, l1, l2, one1, one2, step;
char s1[maxl], s2[maxl];
int main()
for (int i=0; ione2) --one1, s1[i]='0';\
++step;
}for (int i=0; iif (one1for (int i=0; iif (s1[i]!=s2[i]) ++tmp;
step+=tmp/2; //這是由於只有0和1
printf("case %d: %d\n", it, step);
}return 0;
}
UVa 12545 位元變換器
題意 輸入兩個等長的串s和t,其中s包含字元0,1,但t只包含0和1。用盡量少的步數把s變成t。每步有3種操作 把s中的0變成1 把s中的 變成0或者1 交換s中任意兩個字元。思路 題目不是很難。首先考慮交換,然後再看有多少不同的,就需要再加上多少次。1 include 2 include3 inc...
紫書 習題8 3 UVa 12545 (構造法)
參考了 最後推出來操作的個數為問號的個數 加上 同一位置上s串為0而t串為1的位置數量 與 同一位置上s串為1而t串為0的位置數量的最大值。也就是max ans1 ans2 que que為問號總數,而ans1和ans2意義如上 這個公式應該是眾多部落格裡面最簡單的了,讓我一步一步推給你看 首先判斷...
RAC連線的問題ORA 12545
連線到rac資料庫的時候經常會出現ora 12545錯誤,在metalink上查詢了一下,是oracle的乙個小bug。在遠端客戶端連線rac資料庫時,通過統一的服務名連線時經常會出現ora 12545錯誤。sql conn ndmain testrac輸入口令 已連線。sql conn ndmai...