⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3416065_ac_32ms_292k.cc

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CC
字号:
#include <stdio.h>
#include <string.h>

int r, c;
int R, C;
char sub[21][21], img[21][21];
int mark[21];
bool success;

bool same(int i, int j)
{
	int k, p;

	k = 0;
	for(p = 0; p < c; p++)
	{
		while (k < C && mark[k] == 0)
		{
			k++;
		}
		if (sub[j][p] != img[i][k])
		{
			return false;
		}
		k++;
	}
	return true;
}

void check()
{
	int i, j;

	i = 0;
	for (j = 0; j < r; j++)
	{
		while (i < R && !same(i, j))
		{
			i++;
		}
		if (i == R)
		{
			return ;
		}
		i++;
	}
	success = true;
}

void enumerate(int from, int need)
{
	int i;

	if (need == 0)
	{
		check();
		return ;
	}
	for (i = from; !success && i <= C - need; i++)
	{
		mark[i] = 1;
		enumerate(i + 1, need - 1);
		mark[i] = 0;
	}
}

int main()
{
	int i;

	scanf("%d%d", &r, &c);
	for (i = 0; i < r; i++)
	{
		scanf("%s", sub[i]);
	}
	scanf("%d%d", &R, &C);
	for (i = 0; i < R; i++)
	{
		scanf("%s", img[i]);
	}
	memset(mark, 0, sizeof(mark));
	success = false;
	enumerate(0, c);
	puts(success ? "Yes" : "No");
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -