最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css

来源:懂视网 责编:小采 时间:2020-11-27 16:00:01
文档

CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css

CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css_WEB-ITnose:C. Removing Columns time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an n×m rectangular table consisting of lower case English letters. In
推荐度:
导读CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css_WEB-ITnose:C. Removing Columns time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an n×m rectangular table consisting of lower case English letters. In

C. Removing Columns

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given an n?×?m rectangular table consisting of lower case English letters. In one operation you can completely remove one column from the table. The remaining parts are combined forming a new table. For example, after removing the second column from the table

abcdedfghijk

we obtain the table:

acdefghjk

A table is called good if its rows are ordered from top to bottom lexicographically, i.e. each row is lexicographically no larger than the following one. Determine the minimum number of operations of removing a column needed to make a given table good.

Input

The first line contains two integers ? n and m (1?≤?n,?m?≤?100).

Next n lines contain m small English letters each ? the characters of the table.

Output

Print a single number ? the minimum number of columns that you need to remove in order to make the table good.

Sample test(s)

Input

1 10codeforces

Output

Input

4 4casecaretestcode

Output

Input

5 4codeforcescodeforces

Output

Note

In the first sample the table is already good.

In the second sample you may remove the first and third column.

In the third sample you have to remove all the columns (note that the table where all rows are empty is considered good by definition).

Let strings s and t have equal length. Then, s is lexicographically larger than t if they are not equal and the character following the largest common prefix of s and t (the prefix may be empty) in s is alphabetically larger than the corresponding character of t.


这种题用bfs肯定要爆内存,所以没办法爆搜

仔细想想,如果遇到不合法的,一定要去掉,用一个数组标记第j列是否要去掉,然后比较字典序就行了


#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;bool vis[110];char str[110][110];int main(){	int n, m;	while (~scanf("%d%d", &n, &m))	{	for (int i = 0; i < n; ++i)	{	scanf("%s", str[i]);	}	int ans = 0;	memset (vis, 0, sizeof(vis));	while (1)	{	bool flag = false;	for (int i = 1; i < n; ++i)	{	for (int j = 0; j < m; ++j)	{	if (vis[j] || str[i][j] == str[i - 1][j])	{	continue;	}	if (str[i][j] > str[i - 1][j])	{	break;	}	if (str[i][j] < str[i - 1][j])	{	flag = true;	vis[j] = 1;	ans++;	}	}	}	if (!flag)	{	break;	}	}	printf("%d\n", ans);	}	return 0;}

文档

CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css

CodeforcesRound#283(Div.2)--C.RemovingColumns_html/css_WEB-ITnose:C. Removing Columns time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an n×m rectangular table consisting of lower case English letters. In
推荐度:
标签: div ht round
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top