時間限制: 1 sec 記憶體限制: 128 mb
[狀態] [提交] [命題人:外部匯入]
題目描述
小明最近迷上了字串操作。對每個字串,小明每次可以執行以下兩種操作之一:
把字串中的某個字元改成任意乙個其他字元,花費1的代價。
交換字串中的兩個字元,花費0的代價。
小明發現,把乙個字串通過一系列的操作,可以轉換成任何乙個與之等長的字串。例如,把 「hello」變為「world」的一種代價為 3 的操作序列如下:
hello → wello (替換 h 為 w,代價為 1)
wello → wolle (交換 e 和 o,代價為 0)
wolle → worle (替換 l 為 r,代價為 1)
worle → world (替換 e 為 d,代價為 1)
小明發現,無法用少於 3 次的代價將「hello」變為「world」。 顯然,不同的轉換方案花費的代價是不同的,請程式設計幫助小明計算把乙個字串變為另乙個字元 串的最小代價。
本題中的字串根據給定的初始數值 s 按以下規則生成:
for i = 1, 2, … n
s ← (s × 345) mod 19997
第乙個字串的第 i 個字元的 ascii 碼為(97 + (s mod 26))
for i = 1, 2, … n
s ← (s × 345) mod 19997
第二個字串的第 i 個字元的 ascii 碼為(97 + (s mod 26))
輸入
正整數 n (字串長度), s (資料生成器的初始數值)。1 ≤ n ≤ 1,000,1 ≤ s ≤ 19,997。
輸出
將第乙個字串轉換為第二個字串的最少代價。
樣例輸入 copy
4 35
樣例輸出 copy
2提示
*在樣例 1 中,生成的字串是「lzvv」和「xylv」,將第乙個字串變為第二個的最小代價為 2。
上碼
#include
#pragma gcc optimize(2)
using
namespace std;
intmain()
for(i=
1; i<=n; i++
)for
(i=1
; i<=n; i++
)for
(j=1
; j<=n; j++)if
(a[i]
==b[j]
)printf
("%d\n"
,n-sum)
;return0;
}
字串替換
描述輸入乙個字串,以回車結束 字串長度 100 該字串由若干個單詞組成,單詞之間用乙個空格隔開,所有單詞區分大小寫。現需要將其中的某個單詞替換成另乙個單詞,並輸出替換之後的字串。輸入輸入包括3行,第1行是包含多個單詞的字串 s,第2行是待替換的單詞a,長度 100 第3行是a將被替換的單詞b。長度 ...
字串替換
一 問題 函式宣告如下 char strreplace char str,char sub,char rep 其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 二 源 char strreplace char str,char sub,char rep if f...
字串替換
請你實現乙個簡單的字串替換函式。原串中需要替換的佔位符為 s 請按照引數列表的順序一一替換佔位符。若引數列表的字元數大於佔位符個數。則將剩下的引數字元新增到字串的結尾。給定乙個字串a,同時給定它的長度n及引數字元陣列arg,請返回替換後的字串。保證引數個數大於等於佔位符個數。保證原串由大小寫英文本母...