Milking Grid
来源:互联网 发布:淘宝女士打底衫 编辑:程序博客网 时间:2024/05/22 06:24
Milking Grid
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 9077 Accepted: 3958
Description
Every morning when they are milked, the Farmer John's cows form a rectangular grid that is R (1 <= R <= 10,000) rows by C (1 <= C <= 75) columns. As we all know, Farmer John is quite the expert on cow behavior, and is currently writing a book about feeding behavior in cows. He notices that if each cow is labeled with an uppercase letter indicating its breed, the two-dimensional pattern formed by his cows during milking sometimes seems to be made from smaller repeating rectangular patterns.
Help FJ find the rectangular unit of smallest area that can be repetitively tiled to make up the entire milking grid. Note that the dimensions of the small rectangular unit do not necessarily need to divide evenly the dimensions of the entire milking grid, as indicated in the sample input below.
Help FJ find the rectangular unit of smallest area that can be repetitively tiled to make up the entire milking grid. Note that the dimensions of the small rectangular unit do not necessarily need to divide evenly the dimensions of the entire milking grid, as indicated in the sample input below.
Input
* Line 1: Two space-separated integers: R and C
* Lines 2..R+1: The grid that the cows form, with an uppercase letter denoting each cow's breed. Each of the R input lines has C characters with no space or other intervening character.
* Lines 2..R+1: The grid that the cows form, with an uppercase letter denoting each cow's breed. Each of the R input lines has C characters with no space or other intervening character.
Output
* Line 1: The area of the smallest unit from which the grid is formed
Sample Input
2 5ABABAABABA
Sample Output
2
Hint
The entire milking grid can be constructed from repetitions of the pattern 'AB'.
Source
USACO 2003 Fall
题意:求最小矩阵的大小
使用两次kmp 求出行的循环节 和 列的循环节 乘积即使答案
代码如下:
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>char s[10010][80],c[80][10010];int next_s[10010],next_c[80];using namespace std;int Get_nexts(int &len){ int i=0,j=-1; next_s[0]=-1; while(i<len) { if(j==-1||strcmp(s[i],s[j])==0) next_s[++i]=++j; else j=next_s[j]; } return len-next_s[len];}int Get_nextc(int &len){ int i=0,j=-1; next_c[0]=-1; while(i<len) { if(j==-1||strcmp(c[i],c[j])==0) next_c[++i]=++j; else j=next_c[j]; } return len-next_c[len];}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%s",&s[i]); memset(c,'\0',sizeof(c)); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) c[j][i]=s[i][j]; } printf("%d\n",Get_nexts(n)*Get_nextc(m)); return 0;}
阅读全文
0 0
- Milking Grid
- Milking Grid
- poj 2185 Milking Grid
- X - Milking Grid
- POJ 2185 Milking Grid
- poj2752 Milking Grid--------KMP
- POJ 2185 - Milking Grid
- poj2185 Milking Grid
- poj 2185 Milking Grid
- poj 2185 Milking Grid
- Milking Grid 简单KMP
- POJ 2185 Milking Grid
- POJ 2185 Milking Grid
- POJ 2185Milking Grid
- poj 2185 Milking Grid
- poj2185 Milking Grid
- POJ2185 Milking Grid
- POJ2185 Milking Grid【KMP】
- 给定两个整形变量的值,将两个值的内容进行交换
- 把GridView放到了界面的底部,每次加载焦点在它
- WeakReference带来了什么
- 22.笔记go语言——使用SQLite驱动
- Linux操作系统命令学习第六天
- Milking Grid
- android 欣阅App功能介绍
- 数据库查询优化的一些点——索引
- [斯特林数][DP]BZOJ 2159: Crash 的文明世界
- 23.笔记go语言——MongDB数据库使用
- JavaScript强制类型转换和隐式类型转换
- 初学者Android--WebView
- hdu 6003 Problem Buyer(贪心)
- oracle中的索引