栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3367 Counterfeit Money

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3367 Counterfeit Money

#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;#define N 45char a[N*3][N*3], b[N][N];struct node{ int x, y, l, r, t, b, s;}tmp, ans;int c[N], l[N], r[N];int main(){ int m1, n1, m2, n2; while (scanf ("%d%d", &m1, &n1) == 2){ memset(a, '#', sizeof(a)); for (int i = 0; i < m1; i++){ scanf ("%s", a[i+N] + N); } scanf ("%d%d", &m2, &n2); for (int i = 0; i < m2; i++){ scanf ("%s", b[i]); } ans.s = 0; for (tmp.x = -m2+1; tmp.x < m1; tmp.x++){ for (tmp.y = -n2+1; tmp.y < n1; tmp.y++){ memset(c, 0, sizeof(c)); for (int i = 0; i < m2; i++){ for (int j = 0; j < n2; j++){ if (a[tmp.x + N + i][tmp.y + N + j] == b[i][j]) c[j]++; else c[j] = 0; } for (int j = 0; j < n2; j++){ int k = j - 1; while (k >= 0 && c[k] >= c[j]){ k = l[k]; } l[j] = k; } for (int j = n2-1; j >= 0; j--){ int k = j+1; while (k < n2 && c[k] >= c[j]){ k = r[k]; } r[j] = k; } for (int j = 0; j < n2; j++){ tmp.l = l[j] + 1; tmp.r = r[j] - 1; tmp.t = i - c[j] + 1; tmp.b = i; tmp.s = (tmp.r - tmp.l + 1) * (tmp.b - tmp.t + 1); if (tmp.s > ans.s){ ans = tmp; } } } } } if (ans.s == 0){ printf ("0 0n"); }else{ printf ("%d %dn%d %dn%d %dn", ans.b - ans.t + 1, ans.r - ans.l + 1, ans.x + ans.t + 1, ans.y + ans.l + 1, ans.t + 1, ans.l + 1 ); } } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号