
pascal,二维数组的布尔型怎么做?系统总是说不兼容boolean类型。
2个回答
展开全部
哈 今年NOIPday1第一题吧。你的解法是错误的,这是个模拟题,很简单的说。判断X,Y是否在题目所给的区间,在的话就更新地毯编号,不在就不更新。你这么做不行。内存开不下
追问
“判断X,Y是否在题目所给的区间,在的话就更新地毯编号,不在就不更新。”
我就是这个思路,为什么内存开不下呢? 如果按我的思路,该怎么编呢?
追答
嗯~~~思路是对的,你打算怎么编写呢?
如果是开个BOOLEAN,看下题目的数据范围,我记不到了,估计是100000*100000
这个是很大的开销,题目只给了128M 如果是这个开法~~那么就是1000M,怎么可能过,如果是10000*10000 这个估计刚好100M左右,可以卡过内存,但是你怎么记录呢?他要求覆盖的最后一张地毯,而你是只能标记这个地毯是否被覆盖过。而且如果老实去做,像上面那样,一个区域,一个区域去找,那么绝对超时,不用想的事情。
正确的做法,应该是先把他给的地毯保存下来。然后读入X,Y。用一个变量来记录最后一个地毯。
按他所给的地毯编号,进行处理。伪代码如下。
k:=0;
for i:=1 to n do
if (x>=map[i].a)and(a=y)then k:=i;
if k0 then writeln(k)
else writeln(-1);
话说我做这道题的时候,还犯了一个小错误,幸亏最后几分钟检查出来了,当时吓死我了。大致就是这样。如果还有不懂,可以继续问我哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询