设为首页 加入收藏

TOP

UVA 题目10010 - Where's Waldorf? (三)
2015-11-21 01:18:33 来源: 作者: 【 】 浏览:19
Tags:UVA 题目 10010 Where' Waldorf
??????????????? }?
??????????????????? else if(StartR ==? i+1 && StartC > j+1){?
??????????????????????? StartR = i+1;?
??????????????????????? StartC = j+1;?
??????????????????? }?
??????????????? }?
??????????? }?
??????????? //left - up??
??????????? if(j - len + 1 >= 0 && i - len + 1 >= 0){?
??????????????? flag = 0;?
??????????????? for(k = 0;k < len;k++){?
??????????????????? if(str[k] != Matrix[i-k][j-k]){?
??????????????????????? flag = 1;?
??????????????????????? break;?
??????????????????? }?
??????????????? }?
??????????????? if(flag == 0){?
??????????????????? if(StartR >? i+1){?
??????????????????????? StartR = i+1;?
??????????????????????? StartC = j+1;?
??????????????????? }?
??????????????????? else if(StartR ==? i+1 && StartC > j+1){?
??????????????????????? StartR = i+1;?
??????????????????????? StartC = j+1;?
??????????????????? }?
??????????????? }?
??????????? }?
??????????? //left - down??
??????????? if(j - len + 1 >= 0 && i + len <= M){?
??????????????? flag = 0;?
??????????????? for(k = 0;k < len;k++){?
??????????????????? if(str[k] != Matrix[i-k][j+k]){?
??????????????????????? flag = 1;?
??????????????????????? break;?
??????????????????? }?
??????????????? }?
??????????????? if(flag == 0){?
??????????????????? if(StartR >? i+1){?
??????????????????????? StartR = i+1;?
??????????????????????? StartC = j+1;?
??????????????????? }?
??????????????????? else if(StartR ==? i+1 && StartC > j+1){?
??????????????????????? StartR = i+1;?
??????????????????????? StartC = j+1;?
??????????????????? }?
??????????????? }?
??????????? }?
??????? }//for j??
??? }//for i??
??? return 0;?
}?
?
int main (){?
??? int i,j,Case,k,M,N;?
??? //freopen("C:\\Users\\XIAOSI\\Desktop\\acm.txt","r",stdin);????
??? while(scanf("%d",&Case) != EOF){?
??????? while(Case--){?
??????????? scanf("%d %d",&M,&N);?
??????????? //输入字符矩阵??
??????????? for(i = 0;i < M;i++){?
??????????????? scanf("%s",temp);?
??????????????? for(j = 0;j < N;j++){?
??????????????????? Matrix[i][j] = temp[j];?
??????????????????? //转换为小写??
??????????????????? if(Matrix[i][j] >= 'A' && Matrix[i][j] <= 'Z'){?
??????????????????????? Matrix[i][j] = Matrix[i][j] - 'A' + 'a';?
??????????????????? }?
??????????????? }?
??????????? }?
??????????? scanf("%d",&k);?
??????????? //待匹配串??
??????????? for(i = 0;i < k;i++){?
??????????????? scanf("%s",str);?
??????????????? int len = strlen(str);?
??????????????? //转换为小写??
??????????????? for(j = 0;j < len;j++){?
??????????????????? if(str[j] >= 'A' && str[j] <= 'Z'){?
??????????????????????? str[j] = str[j] - 'A' + 'a';?
??????????????????? }?
??????????????? }?
??????????????? //printf("%s",str);??
??????????????? Match(M,N,StartR,StartC);?
??????????????? printf("%d %d\n",StartR,StartC);?
??????????? }?
??????????? //每组测试之间有空行??
??????????? if(Case){?
??????????????? printf("\n");?
??????????? }?
??????? }?
??? }?
??? return 0;?
}?
?
?????

/*********************************
*?? 日期:2013-4-23
*?? 作者:SJF0115
*?? 题号: 题目10010 - Where's Waldorf?
*
*?? 结果:AC
*?? 来源:UVA
*?? 总结:
**********************************/
#include
#include

char Matrix[51][51];
char str[21],temp[21];
int StartR,StartC;
//M行 N列
int Match(int M,int N,int &StartR,int &StartC){
?int i,j,k,flag;
?StartR = 51,StartC = 51;
?int len = strlen(str);
?for(i = 0;i < M;i++){
??for(j = 0;j < N;j++){
???flag = 1;
???//left - right
???if(j + len <= N){
????flag = 0;
????for(k = 0;k < len;k++){
?????if(str[k] != Matrix[i][j+k]){
??????flag = 1;
??????break;
?????}
????}
????if(flag == 0){
?????if(StartR >? i+1){
??????S

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU1165:Eddy's research II 下一篇hdu 4153(数学)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: