算法竞赛入门经典(第2版)习题4-2 正方形UVa201

cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

判断边长不同的正方形各有几个

做题体会:

ce:pre">        思考1:如何辨别不同大小的正方形ce:pre">一个点有横和竖的时候开始检查4条边是否齐全
ce:pre">        思考2:如何存储相同点的横和竖ce:pre">用2个数组分别存储

注意:题目要求输入H时候(行࿰c;列);但是输入V时候(列࿰c;行);储存V时候只要调换一下就OK


<code class="language-cpp">#include <stdio.h>
#include <string.h>
#include <ctype.h>
int n, HV, h[10][10], v[10][10], pro = 1;
int main()
{
	while(scanf("%d%d", &n, &HV) == 2 && n)
	{
		int nedge, num, nothing = 1;
		memset(h, 0, sizeof(h));
		memset(v, 0, sizeof(v));
		while(HV--)
		{
			char t;
			int i,j;
			t = getchar();
			while(!isalpha(t))
				t = getchar();
			scanf("%d%d", &i, &j);
			if(t == 'H')
				h[i][j] = 1;
			else if(t == 'V')
				v[j][i] = 1;
		}
		printf("Problem #%d\n\n", pro++);
		for(nedge = n; nedge > 0; nedge--)
		{
			int i, j, size = 0;  //square平方
			num = 0;
			for(i = 1; i < n; i++)
			{
				for(j = 1; j < n; j++)
				{
					if(h[i][j] && v[i][j])
					{
						int p = 0, q, number = 2, check = 1;
						while(number--)    // 循环检验4条边
						{
							for(q = 0; q < nedge; q++)    //边的边长
							{
								if(!h[i+p][j+q] || !v[i+q][j+p])
									check = 0;
							}
							p = p + nedge;
						}
						if(check)
						{
							nothing = 0;
							size++;
						}
					}
				}
			}
			if(size)
				printf("%d square (s) of size %d\n", nedge, size);
		}
		if(nothing)
			printf("No completed squares can be found.\n");
		printf("\n**********************************\n\n");
	}
	return 0;code>


cle>

http://www.niftyadmin.cn/n/1403720.html

相关文章

__FILE__,__LINE__,__DATE__,__TIME__用途

C有四个常用的预定义名字&#xff0c;分别为:__FILE__,__LINE__,__DATE__,__TIME__ __FILE__:记录文件的路径加名称 __LINE__:记录文件已经被编译的行数 __DATE__:记录文件的编译日期 __TIME__:记录文件的编译时间 可以当作变量直接使用,一般用作程序调试 例子: #includ…

《算法竞赛入门经典(第2版)》刘汝佳读后感

说说我怎么遇到这么书和学习这本书的感受吧。Stay Hungry. Stay Foolish. 学校组织准备参加<蓝桥杯>的程序比赛&#xff0c;我就开始做准备了&#xff0c;感觉我需要一个比较系统的学习&#xff0c;所以去了网上和图书馆找书&#xff0c;刚开始我在网上找到了《算法导论》…

16道嵌入式C语言面试题

1. 用预处理指令#define 声明一个常数&#xff0c;用以表明1年中有多少秒&#xff08;忽略闰年问题&#xff09; #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情&#xff1a; 1). #define 语法的基本知识&#xff08;例如&#xff1a;不能以分号结束&…

算法竞赛入门经典(第2版)习题4-4 骰子涂色UVa253

判断两个骰子是否等价 做题体会&#xff1a; 明显枚举法可以解决问题。但是我思考是否可以用骰子的特性来解决这个问题呢&#xff1f; 骰子是有规律可寻&#xff0c;可惜我再三思考&#xff0c;也找不到明确的规律出来&#xff0c;确定8个角的时候&#xff0c…

WinCE6.0中应用程序如何直接访问物理空间

在实际开发过程中&#xff0c;经常希望能在应用程序中直接读写设备的物理空间。以前在做WinCE6.0下的MEMMgr时通过秘密加载一个内核态驱动实现了这个需求。但这种方式有一个明显的缺陷&#xff0c;每次读写都必须经由它才能完成。如果只是读取GPIO&#xff0c;那问题不算大。如…

算法竞赛入门经典(第2版)习题4-5 IP网络UVa1590

输入一些IP地址&#xff0c;求出最小的IP地址&#xff0c;再求出子网掩码 做题体会&#xff1a; 题目不难&#xff0c;输入的时候需要注意一些&#xff0c;先转换成二进制&#xff0c;判断&#xff0c;再转换成十进制&#xff0c;输出答案 #include <stdio.h> …

OrCAD Capture 原理图对话框中英对照 OrCAD常用文档类型

*.opj—项目管理文件*.dsn—电路图文件*.olb—图形符号库文件*.lib—仿真模型描述库文件*.mnl—网络表文件*.max—电路板文件*.tch—技术档文件*.gbt—光绘文件*.llb—PCB封装库文件*.log *.lis—记录说明文件*.tpl—板框文件*.sf—策略档文件 系统属性包括(Options>Prefe…

算法竞赛入门经典(第2版)习题4-8 特别困的学生UVa12108

输入学生个数、醒A分钟、睡B分钟和现在状态&#xff0c;输出第几分钟全部醒 做题体会&#xff1a; 题目不难&#xff0c;不过需要集中精神思考&#xff0c;处理好数组里的数&#xff0c;不要出现逻辑错误&#xff1b;当现在状态等于初始状态时&#xff0c;表示进入死循…