Squares
来源:互联网 发布:淘宝卖的ipad是真的吗 编辑:程序博客网 时间:2024/04/30 04:19
Uva201
开始想图保存,后面打印节点就发现错了,所以只能保存
每个点的方向,方向只需要两个就行了,然后对每个有
向右的点枚举一次,统计个数就行了,每个点只与下面的
点匹配就行了。
#include <stdio.h>#include <string.h>const int maxn = 15;int cnt[maxn];int dx[2] = { 0, 1 }, dy[2] = { 1, 0 }; //只有向下和向右struct node{ int dir[2];} map[maxn][maxn];int is_ok ( int x, int y, int n ){ for ( int i = x; i < x+n; i ++ ) //看是否边 if ( map[i][y].dir[0] == 0 || map[i][y+n].dir[0] == 0 ) return 0; for ( int i = y; i < y+n; i ++ ) if ( map[x][i].dir[1] == 0 || map[x+n][i].dir[1] == 0 ) return 0; return 1;}void search_square ( int x, int y ){ for ( int i = x; i < maxn; i ++ ) { if ( map[i][y].dir[0] == 0 ) break ; int size = i-x+1; //边长 //printf ( "**%d %d %d %d \n", i, y, size, is_ok ( x, y, size ) ); if ( is_ok ( x, y, size ) ) cnt[size] ++; //统计此正方形边长的个数 }}void print ( int n ){ for ( int i = 1; i <= n; i ++ ) { for ( int j = 1; j <= n; j ++ ) { printf ( "%d %d\n", i, j ); printf ( "dir:%d %d\n", map[i][j].dir[0], map[i][j].dir[1] ); } }}int main ( ){ int n, m, x, y, flag, cas = 0; char op[2]; while ( ~ scanf ( "%d%d", &n, &m ) ) { memset ( map, 0, sizeof ( map ) ); memset ( cnt, 0, sizeof ( cnt ) ); while ( m -- ) { scanf ( "%s%d%d", op, &x, &y ); if ( op[0] == 'H' ) map[x][y].dir[1] = 1; else map[y][x].dir[0] = 1; //注意这里是yx,看清题目,被坑在这里了 } for ( int i = 0; i < maxn; i ++ ) //枚举每一点就好 { for ( int j = 0; j < maxn; j ++ ) { if ( map[i][j].dir[0] == 0 ) continue ; search_square ( i, j ); } } //print ( n ); flag = 0; if ( cas ++ ) //打印结果 printf ( "\n**********************************\n\n" ); printf ( "Problem #%d\n\n", cas ); for ( int i = 0; i < maxn; i ++ ) { if ( cnt[i] ) { printf ( "%d square (s) of size %d\n", cnt[i], i ); flag ++; } } if ( flag == 0 ) printf ( "No completed squares can be found.\n" ); } return 0;}
0 0
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Squares
- Least Squares
- Palindromic Squares
- hdu1264Counting Squares
- POJ2002 Squares
- 【STL】Squares
- palindromic squares
- Palindromic Squares
- Palindromic Squares
- Palindromic Squares
- java dfs
- 备忘录模式实现画图板撤销操作
- SpringMVC_springmvc框架
- ---frame---收尾式动画---枚举
- qt+cdb调试配置
- Squares
- 关于umask函数和creat函数
- ubuntu下激活matlab
- jacob方法大全
- PAT 1092. To Buy or Not to Buy (20)
- opencv人脸识别学习记录 第一篇
- 欧拉角pitch、yaw,roll的理解
- Linux-epoll
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)