小紫书 4-2 UVA 201 Squares
2016-01-31 13:57
405 查看
给一些点和点之间的连线,问共有多少个正方形,写出每个边长为k的正方形共有多少个
枚举,枚举每个点作为一个正方形的左上顶点,然后依次枚举边的长度,看看能否形成一个正方形即可。
代码:
枚举,枚举每个点作为一个正方形的左上顶点,然后依次枚举边的长度,看看能否形成一个正方形即可。
代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> using namespace std; bool row[10][10], column[10][10]; int ans[10]; int main() { //freopen("input.txt", "r", stdin); int n, m, p = 0; while (scanf("%d%d", &n, &m) != EOF) { memset(row, 0, sizeof(row)); memset(column, 0, sizeof(column)); memset(ans, 0, sizeof(ans)); char cmd[4]; int i, j; while (m--) { scanf("%s%d%d", cmd, &i, &j); if (cmd[0] == 'H') row[i][j] = 1; else if (cmd[0] == 'V') column[j][i] = 1; } /*for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) printf("%d ", row[i][j]); printf("\n"); } printf("\n\n"); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) printf("%d ", column[i][j]); printf("\n"); }*/ for (int i = 1; i < n; ++i) { for (int j = 1; j < n; ++j) { for (int k = 0; i + k < n&&j + k < n; ++k) { if (row[i][j + k] && column[i + k][j]) { bool f1 = 1, f2 = 1; //printf("%d %d\n", i, j); for (int l = 0; l <= k; ++l) { if (column[i + l][j + k + 1] == 0) { f1 = 0; break; } } for (int l = 0; l <= k; ++l) { if (row[i + k + 1][j + l] == 0) { f2 = 0; break; } } if (f1&&f2) { ++ans[k + 1]; //printf("%d %d %d\n", i, j, k + 1); } } else break; } } } bool exist = 0; for (int i = 0; i < 10;++i) if (ans[i]>0) { exist = 1; break; } if (p > 0) printf("\n**********************************\n\n"); printf("Problem #%d\n\n", ++p); if (exist) { for (int i = 1; i < 10; ++i) if (ans[i]>0) printf("%d square (s) of size %d\n", ans[i], i); } else printf("No completed squares can be found.\n"); } //while (1); //system("pause"); return 0; }
相关文章推荐
- 知乎:你是如何开始能写python爬虫?
- jni初体验
- linux nginx环境搭建
- 畅所欲言第1期 - 从Viola&Jones的人脸检测说起
- Android 原生导航 II-导航模式&Tab
- 本地存储 目录
- Vawio Sequence (NYOJ 763 LIS变形)
- python 抓去指定网页以及该网页上所有链接
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标
- Python抓取网页链接
- ZOJ 1042 W's cipher
- Django微信开发
- ASP.NET Core 1.0基础之诊断
- WebService到底是什么?
- 曲折的ubuntu14.04下用c的api去连接mysql
- postgresql数据库常用命令
- 起伏地形环境轮式机器人运动控制研究
- 排版题 2
- Build.gradle配置
- 起伏地形环境轮式机器人运动控制研究