1.poj 3450 coporate identity
這兩題的解法都是列舉子串,然後匹配,像這種題目以後可以不用kmp來做,直接字串自帶的strstr函式搞定,如果字串未出現,該函式返回null。
下面貼出其比較。
**:(kmp版)(1360ms 888kb)
#include #includeview code#include
#include
#include
using
namespace
std;
#define n 4007
char ans[203],str[203
];char ss[n][203],tt[203
];int next[203
];void getnext(char *ss)
}int kmp(char *ss,char *tt)
if(j ==m)
return1;
return0;
}int
main()
if(j ==n)}}
if(ans[0] == '\0'
) cout
<
identity lost\n";
else
cout
}return0;
}
**:(strstr函式版)(454ms 912kb)
#include #includeview code#include
#include
#include
#include
using
namespace
std;
#define n 4007
char ans[203],str[203
];char ss[n][203],tt[203
];int
main()
if(j ==n)}}
if(ans[0] == '\0'
) cout
<
identity lost\n";
else
cout
}return0;
}
2.poj 3080 blue jeans
**:(kmp版)(32ms 684kb)
#include #includeview code#include
#include
#include
using
namespace
std;
#define n 4007
char ans[65],str[65
];char ss[12][65],tt[65
];int next[65
];void getnext(char *ss)
}int kmp(char *ss,char *tt)
if(j ==m)
return1;
return0;
}int
main()
if(j ==n)}}
if(ans[0] == '
\0' || strlen(ans) < 3
) cout
<
no significant commonalities\n";
else
cout
}return0;
}
**:(strstr函式版)(0ms 700kb)
#include #includeview code#include
#include
#include
using
namespace
std;
#define n 4007
char ans[65],str[65
];char ss[12][65
];int
main()
if(j ==n)}}
if(ans[0] == '
\0' || strlen(ans) < 3
) cout
<
no significant commonalities\n";
else
cout
}return0;
}
kmp 模版及兩道模版題
現在我們有母串s,模式串t 我們傳統的字串匹配都思想是,不管此次匹配成功與否,都是模式串向前移動一位繼續匹配,這樣子效率肯定是很慢的,因為我們根本沒有利用到之前已經匹配過的資訊 kmp演算法就是利用之前匹配的資訊,使模式串前移更多的位,使其效率大大提公升,那麼我們怎麼知道什麼時候前移多少位呢,首先我...
兩道選擇題
教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車禍,痊癒後,臉上留下幾...
兩道選擇題
記得大學一堂選修課上。教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車...