- 迎春舞会之交谊舞
- 2012-08-17 13:36:38 @
在下的做法是把男生分成很多块,每两个女生之间的男生算一块,记录每块男生的总数以及没有配对(称作free吧)的数量。
然后每个女生就从她前边找最近的有free男生的块,这中间间隔了多少男生可以在向前找的时候顺便计算出来的,然后在这个舞伴男生所在的块,还有tot-free+1(算上他自己)要计算在他们之间。
可以用一个栈来维护,另外,如果一个块已经没有free男生了,可以把它与前一个块融合,应该会快一些。
for (按女生循环)
{
如果与上一女生之间有男生,新增一个块
向前找一个free>0的块,同时记录经过的男生数量
配对,free--,计算间隔
融合free=0的块
}
数组1510AC。
0 条评论
目前还没有评论...