UVA
来源:互联网 发布:服装店记账软件 编辑:程序博客网 时间:2024/06/05 12:39
紫书第四章的,不难,当时懒没做,,,
题意:找正方形~,题目更定了规则,有个细节(仔细看)要看清,O(∩_∩)O
不是最好的代码,思路差不多就这样:
从头遍历一遍,每个点看作正方形的左上角点,当然 之前要有数组存边的
// 突然感觉我写代码怎么跟讲题似的,,不管了 就这样吧
#include<cstdio>const int maxn = 10 + 10;int h[maxn][maxn], v[maxn][maxn];int n, m, s[100], a, b, cnt;char c;void init(){ for(int i = 1; i <= n+5; ++i) s[i] = 0; for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) { h[i][j] = 0; v[i][j] = 0; } for(int i = 0; i < m; ++i) { scanf("%c %d %d", &c, &a, &b); if(c == 'H') h[a][b] = 1; if(c == 'V') v[b][a] = 1; getchar(); }}void solve(){ for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { for(int k = 0; k < n; ++k) { if(i+k+1 > n || j+k+1 > n) break; if(h[i][j+k] && v[i+k][j]) { int t = 0; for(int l = 0; l <= k; ++l) { if(!v[i+l][j+k+1] || !h[i+k+1][j+l]) t = 1; //{ s[(k+1)]++; } } if(!t) s[k+1]++; } else break; } } } int f = 0; if(cnt != 1) printf("\n**********************************\n\n"); printf("Problem #%d\n\n", cnt++); for(int i = 1; i <= n; ++i) if(s[i] ) { printf("%d square (s) of size %d\n", s[i], i); f = 1; } if(!f) printf("No completed squares can be found.\n");}int main(){ cnt = 1; while(scanf("%d%d", &n, &m) == 2 && n) { getchar(); init(); solve(); } return 0;}
1 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- MVC模式
- 网站-织梦-以及看不到织梦安装界面-织梦安装界面空白-织梦后台安装完成前台崩溃了
- Android学习之——真机安装apk时出现INSTALL_FAILED_NO_MATCHING_ABIS错误的解决办法
- rman命令详解(三)
- 点击UITableViewCell里的CollectionViewCell进行跳转
- UVA
- java开发中的23种设计模式
- web.config中配置数据库连接的两种方式
- canvas 画图
- Https的交互流程
- 记录自已学习之ARM汇编语言ldr和str
- Linux:浅谈tack_struct
- 欢迎使用CSDN-markdown编辑器
- poj 1985 Cow Marathon 树的直径