树状数组
風吹过
这个作者很懒,什么都没留下…
展开
-
uva 1428 - Ping pong (树状数组的应用)
题意:n个人,每个人有个居住编号和技能度,选3个人(其中1个是裁判)来比赛,要求裁判居住在两选手之间,技能值也要在两选手之间,一共有多少种比赛? 解答: i 为裁判,则c【i】为i前面技能比他小的人数,d【i】为后面技能比他小的人数,则答案为c[i]*(n-d[i]-i)+d[i]*(i-c[i]-1); #include #include #include #include using na原创 2013-08-10 10:05:19 · 600 阅读 · 0 评论 -
hdu 3743 Frosh Week (树状数组的离散化)
由于num的值过大,不能直接开a【num】,所以对num进行离散化 #include #include #include #include using namespace std; typedef __int64 LL; #define Max 1000005 struct node { int num,id; }; node a[Max]; LL c[Max]; bool原创 2013-08-10 11:25:52 · 653 阅读 · 0 评论 -
hdu 3874 Necklace(树状数组的灵活应用)
。用map记录当前值是否出现过,并记录这个值的最后一处的位置,当遍历到某个值时,如果前面已经出现过,那么将前面那个数的值清为0,即将map记录的这个数的位置上的数减去这个数,当前位置插入这个值。离线处理询问即可。 #include #include #include #include #include #include using namespace std; typedef __in原创 2013-08-10 21:48:14 · 481 阅读 · 0 评论