不明为什么会说有数组1500不够的情况

在下的做法是把男生分成很多块,每两个女生之间的男生算一块,记录每块男生的总数以及没有配对(称作free吧)的数量。

然后每个女生就从她前边找最近的有free男生的块,这中间间隔了多少男生可以在向前找的时候顺便计算出来的,然后在这个舞伴男生所在的块,还有tot-free+1(算上他自己)要计算在他们之间。

可以用一个栈来维护,另外,如果一个块已经没有free男生了,可以把它与前一个块融合,应该会快一些。

for (按女生循环)

{

如果与上一女生之间有男生,新增一个块

向前找一个free>0的块,同时记录经过的男生数量

配对,free--,计算间隔

融合free=0的块

}

数组1510AC。

0 条评论

目前还没有评论...

信息

ID
1062
难度
4
分类
数据结构 | 点击显示
标签
递交数
3510
已通过
1400
通过率
40%
被复制
11
上传者