您的位置:首页 > 其它

UVA201 - Squares

2015-01-02 22:47 417 查看
这个题比较水吧,控制好输出格式就好了。其他没有坑。

#include<cstdio>
#include<cstring>
#include<memory.h>
typedef struct{
int h,v;
}point;
int main(){
//freopen("in.txt","r",stdin);
int n,m,u=0;
while(scanf("%d%d",&n,&m)==2){
if(u) printf("\n**********************************\n\n");
int i,j,k,s,t;
point a

;
memset(a,0,sizeof(a));
char c;
for(i=0;i<m;i++){
getchar();
c=getchar();
scanf("%d%d",&s,&t);
if(c=='H') a[s-1][t-1].h=1;
if(c=='V') a[t-1][s-1].v=1;
}
printf("Problem #%d\n\n",++u);
int can,out=0;
for(k=1;k<n;k++){//边长
int num=0;//printf("%d=====\n",k);
for(i=0;i<n-k;i++){//每个点情况
for(j=0;j<n-k;j++){ //printf("i=%d j=%d\n",i,j);
can=1;
for(s=i,t=j;t<j+k;t++){
if(a[s][t].h==0) can=0;
}
for(;s<i+k;s++){
if(a[s][t].v==0) can=0;
}
for(s=i,t=j;s<i+k;s++){
if(a[s][t].v==0) can=0;
}
for(;t<j+k;t++){
if(a[s][t].h==0) can=0;
}
if(can) num++;
}
}
if(num) {
printf("%d square (s) of size %d\n",num,k);
out=1;
}
}
if(out==0) printf("No completed squares can be found.\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: