Cross - -

#include <stdio.h>
#include <stdlib.h>

#define SIZE 500
static char map[10][SIZE][SIZE]={0};

int run_test(const char map[SIZE][SIZE]);

void build_map(void)
{
	for(int c=0;c<10;c++)
	{
		for(int y=0;y<SIZE; y++)
			for(int x=0;x<SIZE;x++)
				map[c][x][y]=0;

		for(int x=rand()%10;x<SIZE;x+=2+rand()%8)
			for(int sy=rand()%SIZE,ey=rand()%SIZE;sy<ey;)
				map[c][x][sy++]=1;

		for(int y=rand()%10;y<SIZE;y+=2+rand()%8)
			for(int sx=rand()%SIZE,ex=rand()%SIZE;sx<ex;)
				map[c][sx++][y]=1;
	}
}
void main(void)
{
	build_map();
	for(int count=0;count<10;count++)
		printf("%d\n",run_test(map[count]));
	return;
}

int run_test(const char map[SIZE][SIZE])

{
	int data[SIZE][SIZE];
	int max=0;
	for(int i=0;i<SIZE;i++){
		for(int j=0;j<SIZE;j++)
		{
			data[i][j]=map[i][j];
		}
	}

	for(int i=0;i<SIZE;i++)
	{
		for(int j=0;j<SIZE;j++)
		{
			if(data[i][j]==1)
			{
				bool rl=false;
				bool ud=false;
				if( j+1<SIZE && data[i][j+1]){
					rl=true;
				}
				if( j-1>=0 && data[i][j-1]){
					rl=true;
				}
				if(i+1<SIZE && data[i+1][j]){
					ud=true;
				}
				if(i-1>=0 && data[i-1][j]){
					ud=true;
				}
				if(rl&&ud==1){
					data[i][j]=0;
				}
			}
		}
	}

	for(int i=0;i<SIZE;i++)
	{
		for(int j=0;j<SIZE;j++)
		{
			int x=0;
		    int y=0;
		while(data[i+x][j]!=0)
		{x++;}
		while(data[i][j+y]!=0)
		{y++;}
		if(x>max){max=x;}
		if(y>max){max=y;}
		}
	}

	return max;
}

four lines intersect in a map of size 6*6.

the length of lines excluding intersections,You can see that the length of the longest line is 2.

the thickness of lines is always 1,and lines cross/intersect each other at right angles.

时间: 2024-10-23 20:52:18

Cross - -的相关文章

使用 CROSS APPLY 与 OUTER APPLY 连接查询

?  前言 日常开发中遇到多表查询时,首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等,但是这两种查询有时候不能满足需求.比如,左表一条关联右表多条记录时,我需要控制右表的某一条或多条记录跟左表匹配.貌似,INNER JOIN 或 LEFT OUTER JOIN 不能很好完成.但是 CROSS APPLY 与 OUTER APPLY 可以,下面用示例说明. 1.   示例一 ?  有两张表:Student(学生表)和 Score(成绩表),数据如下: 1)   查询每个

POJ 1700 cross river (数学模拟)

 Crossing River Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10311   Accepted: 3889 Description A group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore some sort of shuttle

Cross The GFW(Great Firewall of China)

Present Situation GFWGreat Firewall of China Theory How To Present Situation As we all know, those who from Mainland China could not enjoy the freedom which brought by the real Internet. For example, we could not access the websites such as Google, F

Unity3D之Vector3.Dot和Vector3.Cross的使用

在Unity3D中,Vector3.Dot表示求两个向量的点积;Vector3.Cross表示求两个向量的叉积. 点积计算的结果为数值,而叉积计算的结果为向量.两者要注意区别开来. 在几何数学中: 1.点积 点积的计算方式为: a·b=|a|·|b|cos<a,b> 其中|a|和|b|表示向量的模,<a,b>表示两个向量的夹角.另外在点积中,<a,b>和<b,a> 夹角是不分顺序的. 所以通过点积,我们其实是可以计算两个向量的夹角的. 另外通过点积的计算我们

交叉验证(Cross Validation)原理小结

交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏.在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓"交叉". 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候.比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型.如果样本

(转载)Cross product

原文地址:https://en.wikipedia.org/wiki/Cross_product Cross product From Wikipedia, the free encyclopedia This article is about the cross product of two vectors in three-dimensional Euclidean space. For other uses, see Cross product (disambiguation). In m

Ajax 跨域请求-- Cross Domain

在认识 跨域 之前,先简单了解下域名和协议名,比如下面这个 URL http://mail.163.com/index.html http://              协议名,也就是HTTP超文本传输协议 mail                  服务器名 163.com           域名 mail.163.com    网站名 /                        根目录 index.html         根目录下的默认网页 1.什么是跨域请求? 请求的下一个资源

XSS 跨站脚本攻击(Cross Site Scripting)

xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制. xss攻击可以分成两种类型: 非持久型攻击 持久型攻击 下面我们通过具体例子,了解两种类型xss攻击. 1.非持久型xss攻击 顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响.非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时

R: Kriging interpolation and cross validation 克里金插值及交叉验证浅析

克里金插值的基本介绍可以参考ARCGIS的帮助文档[1]. 其本质就是根据已知点的数值,确定其周围点(预测点)的数值.最直观的方法就是找到已知点和预测点数值之间的关系,从而预测出预测点的数值.比如IDW插值方法,就是假设已知点和预测点的值跟它们相对距离成反比.克里金插值的精妙之处在于它不仅考虑了已知点和预测点的距离关系,还考虑了这些已知点之间的自相关关系. 如何衡量已知点之间的自相关关系呢?通常使用的就是半变异函数,其公式如下[1]: Semivariogram(distance h) = 0.

CROSS JOIN连接用于生成两张表的笛卡尔集

将两张表的情况全部列举出来 结果表: 列= 原表列数相加 行= 原表行数相乘 CROSS JOIN连接用于生成两张表的笛卡尔集. 在sql中cross join的使用: 1.返回的记录数为两个表的记录数乘积. 2.将A表的所有行分别与B表的所有行进行连接. 例如: tableA r1 r2 A B C D tableB r3 r4 1 2 3 4 select * from tableA cross join tableB; return: r1 r2 r3 r4 r1 r2 1 2 r1 r2