Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

写了点总结,看看就好

Posted by whenmary at 2008-08-08 09:54:31 on Problem 3378
3378 crazy Thairs
这道题确实比较crazy。。。我是这么做的:离散化+4个树状数组+高精度。。。。跑了300+ms。
高精度是为了最后的统计,会超过64位表示范围,大概到10^22的样子。这个有模板,不说了。
要算5元组,先算2元组,3,4元组。2元组怎么来的?一元组过来的。一元组就是每个数本身。开一个数组(设为a[]吧),a[i]记录以第i个数为尾巴的x元组的个数。以i结尾的一元组有1个,所以刚开始a[]元素都为1.那么以第i个数结尾的2元组就有它前面比它小的元素的个数那么多个。所以更新数组a[],用树状数组统计,现在a[i]记录了以第i个数结尾的2元组个数。那么以第i个数结尾的3元组呢?当然是它前面以比它小的数结尾的2元组的个数。比如说1,2,4,6,3.第一次a[]={1,1,1,1,1}(一元),第2次a[]={0,1,2,3,2},第3次a[i]={0,0,1,3,1}(3元)。。。。。。每次统计都用树状数组,统计之前要把树状数组清0.
第5次每个a[i]存了5元组个数,全部加起来。高精度出解。
对了,还有离散化,因为元素取到10^9,一共50000个,离散化吧。

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator