UVa201 Squares
来源:互联网 发布:用java打印对称三角形 编辑:程序博客网 时间:2024/05/20 00:17
判断一个正方形点阵图中正方形的个数
有点麻烦,时间复杂度为n^4.目前想到的优化是可以用邻接矩阵做一个,以后再写吧
#include<stdio.h>#include<string.h>int H[10][10];//横边 int V[10][10];//竖边 int main(void) {int sum = 0,n;memset(H,0,sizeof(H));memset(V,0,sizeof(V));FILE *fp = fopen("e4.2.txt","r");int x,y,countH,countV;fscanf(fp,"%d",&n);fscanf(fp,"%d",&countH);for(int i=0;i<countH;i++) {//添加横边 fscanf(fp,"%d %d",&x,&y);H[x-1][y-1] = 1;}fscanf(fp,"%d",&countV);for(int i=0;i<countV;i++) {//添加竖边 fscanf(fp,"%d %d",&x,&y);V[x-1][y-1] = 1;}for(int i=0;i<n;i++) {for(int j=0;j<n;j++) {int edge = i>j?n-i+1:n-j+1;//点到边界的距离 for(int k=1;k<edge;k++) {//判断边长为k的正方形是否存在(最大为edge) int flag = 1;int a = i,b = j;//记录下当前点的位置 while(a<i+k) {//判断竖线if(V[a][b]==0 || V[a][b+k]==0) flag = 0;//判断边是否存在 a++; }a = i;while(b<j+k) {//判断横线if(H[a][b]==0 || H[a+k][b]==0) flag = 0;b++;}if(flag) sum++;}}}printf("%d",sum);}
0 0
- UVA201 Squares
- UVA201 - Squares
- Uva201 Squares
- UVa201 Squares
- UVA201-Squares
- Uva201 Squares
- uva201 Squares 记录
- uva201正方形squares
- UVa201 Squares 解题报告
- UVA201(p96)----Squares
- 正方形(squares,UVa201)
- BFS:UVa201-Squares
- uva201(poj2445) Squares(模拟)
- 【ACM】Solution of UVA201-Squares
- UVa201
- UVa201
- uva201
- UVa201
- 大钉骑马走江湖【bfs】
- coins(hdu 3348 贪心 + 多重背包)
- 从头认识多线程-2.9 缓解同步方法的隐患-同步代码块
- css三列布局,两侧宽度固定,中间宽度自由伸缩
- JAVA技术发展——你不知道的J2SE(五)
- UVa201 Squares
- 经过AVL单旋转,任意二叉查找树T1可以变换成另一颗(具有相同关键字的)查找树T2
- 白话空间统计二十一:密度分析番外:公交广告投放
- UIImageView有时候设置contentMode不管用
- 【技巧】修改windows10在高分屏下的应用的dpi
- 关于指针的小杂碎
- [Q学习]3 QObject的拷贝构造函数与赋值运算符
- IPC基础
- 数学推公式题