[刷题]算法竞赛入门经典(第2版) 4-2/UVa201 - Squares
来源:互联网 发布:阿里云服务器禁止ping 编辑:程序博客网 时间:2024/05/16 20:30
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO
代码:(Accepted,20 ms)
#include<iostream>#include<cstring>using namespace std;int N, M, x, y, CO[12], Times = 0;// 2 <=n<= 9,CO=Countchar SQ[12][12], ch;inline bool V(char a) { return (a == 'B' || a == 'V' ? 1 : 0); }inline bool H(char a) { return (a == 'B' || a == 'H' ? 1 : 0); }int main(){ //freopen("in.txt", "r", stdin); while (~scanf("%d%d",&N,&M)) { getchar(); memset(SQ, '0', sizeof(SQ)); memset(CO, 0, sizeof(CO)); for (int i = 0;i < M;++i) { scanf("%c%d%d", &ch, &x, &y); getchar(); if (SQ[x][y] == '0') SQ[x][y] = ch; else SQ[x][y] = 'B';//Both } for (x = 1;x < N;++x) for (y = 1;y < N;++y) { int ml = (x > y ? N - x : N - y);//max_length,最大边长 for (int i = 1;i <= ml;++i) { int j; for (j = 0;j < i;++j) if (!V(SQ[y][x + j]) || !V(SQ[y + i][x + j]) || !H(SQ[x][y + j]) || !H(SQ[x + i][y + j])) break; if (j == i) ++CO[i]; } } int flag = 0; if(Times)printf("\n**********************************\n\n"); printf("Problem #%d\n\n",++Times); for (int i = 1;i < N;++i) if (CO[i]) { printf("%d square (s) of size %d\n", CO[i],i); if (!flag) flag = 1; } if (!flag) printf("No completed squares can be found.\n"); } return 0;}
分析:把每个可能的正方形都枚举一遍。。比较坑的是V和H的坐标顺序是反的。
0 0
- [刷题]算法竞赛入门经典(第2版) 4-2/UVa201 - Squares
- 算法竞赛入门经典(第2版)习题4-2 正方形 Squares UVa201
- 算法竞赛入门经典 第二版 习题4-2 正方形 Squares uva201
- 算法竞赛入门经典(第2版)习题4-2 正方形UVa201
- 《算法竞赛入门经典(第2版)》
- [刷题]算法竞赛入门经典(第2版) 4-4/UVa253 - Cube painting
- [刷题]算法竞赛入门经典(第2版) 4-1/UVa1589 - Xiangqi
- [刷题]算法竞赛入门经典(第2版) 4-3/UVa220 - Othello
- [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks
- [刷题]算法竞赛入门经典(第2版) 4-6/UVa508 - Morse Mismatches
- [刷题]算法竞赛入门经典(第2版) 4-7/UVa509 - RAID!
- [刷题]算法竞赛入门经典(第2版) 4-8/UVa12108 - Extraordinarily Tired Students
- [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining
- [刷题]算法竞赛入门经典(第2版) 4-10/UVa815 - Flooded!
- [刷题]算法竞赛入门经典(第2版) 5-4/UVa10763 - Foreign Exchange
- [刷题]算法竞赛入门经典(第2版) 6-4/UVa439 6-5/UVa1600
- [刷题]算法竞赛入门经典 第2章习题
- 《算法竞赛入门经典(第2版)》刘汝佳读后感
- 任意文件下载
- 在CentOS7.0上安装Oracle11或12
- Linux常用命令
- HDU 5764 After a Sleepless Night
- Effective C++_Item3笔记
- [刷题]算法竞赛入门经典(第2版) 4-2/UVa201 - Squares
- 理解v4包下ViewPager类的用法
- 死锁的产生和预防死锁
- linphone-PresenceActivity.java文件分析
- 友盟获取QQ头像和昵称
- fastjson JSONField注解忽略字段与格式化字段
- 正则表达式小例
- 关于数组首元素地址与数组首地址的区分
- 版本更新工具类