C. 列の削除
テストごとの時間制限
2 秒
テストごとのメモリ制限
256 メガバイト
入力
標準入力
出力
標準出力
あなたは小文字の英語文字で構成される n?×?m の長方形のテーブルが与えられたとします。 1 回の操作で、テーブルから 1 つの列を完全に削除できます。残りの部分を結合して新しいテーブルを形成します。たとえば、テーブルから 2 番目の列を削除した後、
abcdedfghijk
次のテーブルが得られます:
acdefghjk
その行が辞書順に上から下に順序付けされている場合、つまり各行が辞書順に以下の場合、そのテーブルは良好であると呼ばれます。次のもの。特定のテーブルを良好にするために必要な列を削除する操作の最小数を決定します。
入力
最初の行には 2 つの整数が含まれています ? n と m (1?≤?n,?m?≤?100)。
次の n 行には、それぞれ m 個の小さな英語の文字が含まれています。表の文字。
出力
単一の数字を出力しますか?テーブルを良好にするために削除する必要がある列の最小数。
サンプル テスト
入力
1 10codeforces
出力
入力
4 4casecaretestcode
出力
入力
5 4codeforcescodeforces
出力
注
最初のサンプルでは、テーブルはすでに良好です。
2 番目のサンプルでは、最初と 3 番目の列を削除できます。 3番目のサンプルではすべての列を削除する必要があります (定義上、すべての行が空のテーブルが良好であるとみなされることに注意してください)。
文字列 s と t は同じ長さにしてください。次に、それらが等しくなく、s と t の最大共通接頭語に続く文字 (接頭語は空の場合もあります) が t の対応する文字よりアルファベット順に大きい場合、s は t よりも辞書順に大きくなります。种题用bfs肯定要爆内存,所以没办法爆搜
仔细想,如果遇到不法,必去去掉,用一数组标记第j列否か否か去掉,然后比较字典序就行了