相似字串對於兩個長度相等的字串,我們定義其距離為對應位置不同的字元數量,同時我們認為距離越近的字串越相似。例如,「0123」和「0000」的距離為 3,「0123」和「0213」的距離則為 2,所以與「0000」相比,「0213」和「0123」最相似。
現在給定兩個字串 s1 和 s2,其中 s2 的長度不大於 s1。請在 s1 中尋找乙個與 s2 長度相同的子串,使得距離最小。
輸入包括多組資料。第一行是整數 t,表示有多少組測試資料。每組測試資料恰好佔兩行,第一行為字串 s1,第二行為 s2。所有字串都只包括「0」到「9」的字元。
對於每組測試資料,單獨輸出一行「case #c: d」。其中,c 表示測試資料的編號(從 1 開始),d 表示找到的子串的最小距離。
1 ≤ t ≤ 100
小資料:字串長度不超過 1000
大資料:字串長度不超過 50000
樣例輸入
3樣例輸出0123456789
321010203040506070809
40420121221
211
case #1: 2case #2: 1
case #3: 1
1 #include2 #include3 #include4
intmain()528
if(count29 min=count;30}
31 printf("
case #%d:
",c);
32if(t==0
)33 printf("%d"
,min);
34else
35 printf("
%d\n
",min);36}
37return0;
38 }
#include#include#include#includeusing namespace std;
int main()
{ int t;
int c=0;
string s1,s2;
cin>>t;
while(t--)
{ c++;
cin>>s1;
cin>>s2;
int i,j;
int s1l=s1.length();
int s2l=s2.length();
vectorv;
for(i=0;i<=(s1l-s2l);i++)
{int count =0;
for(j=0;j
程式設計之美2015初賽A
時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 兩個數a和 b a第一行為乙個數t,為資料組數。之後每組資料報含兩行。第一行為n,為集合s的大小。第二行為n個整數,表示集合內的數。對於每組資料輸出一行,形如 case x y x為資料編號,從1開始,y為最大的子集的大小。1 ...
程式設計之美初賽B
時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 小冰是個八卦的人,最近她對乙個社交 很感興趣。由於小冰是個機械人,所以當然可以很快地弄清楚這個社交 中使用者的資訊啦。她發現這個社交 中有n個使用者,使用者和使用者之間可以進行互動。小冰根據使用者之間互動的次數和內容判斷每對使用...
程式設計之美初賽第二場
problem a 一邊輸入邊一邊維護殘留網路,然後跑isap。小資料過了,大資料tle。據說可以bfs預處理 層次網路。可以過。view code include include include include using namespace std const int inf 10000000 ...