2013年4月17日

POJ2352 - Stars

摘要: 题目大意 按纵坐标升序给定N颗星星的坐标(x[i],y[i]),计算出每个等级的星星有多少,对于等级是这样定义的:对于第i颗星星,计算出1~i-1颗星星中横坐标和纵坐标都比第i颗星星小的数量ans,那么ans就是此颗星星的等级。 题解 很经典的树状数组入门题目,直接看代码吧,不过有一个地方要注意,就是横坐标为0的情况,如果在更新的时候循环用的是while(x<=MAXS),对于x=0的情况,会无限... 阅读全文

posted @ 2013-04-17 15:48 仗剑奔走天涯 阅读(272) 评论(0) 推荐(0) 编辑

SGU180 - Inversions

摘要: 题目大意给定N个数,a1,a2,3,a4..an,要求你求出这样的对数:i<=i<j<=n并且a[i]>a[j]。题解就是逆序对问题。。。果断用树状数组做,数据有点大0<=Ai<=10^9,需要进行离散化,离散的时候注意会有相同的数,最先没注意这个,提交上去第二组数据就WA了。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 70000using namespace std;typedef s 阅读全文

posted @ 2013-04-17 15:23 仗剑奔走天涯 阅读(409) 评论(0) 推荐(0) 编辑

POJ - Ultra-QuickSort

摘要: 题目大意 给定N个数(没有相同的值),对N个数进行升序排序,每次只能交换相邻的两个数,问最少需要多少次交换才能够让N个数成为升序排列的 题解 就是逆序对问题,如果a[i]>a[j](i<j)则就是一个逆序对,此题可以用归并排序解决,也可以树状数组,不过我是当树状数组来练习的。此题数据有点大0 ≤ a[i] ≤ 999,999,999,所以需要把N个数进行离散化,因为我们对每个数的值并不感兴趣,只需... 阅读全文

posted @ 2013-04-17 15:10 仗剑奔走天涯 阅读(191) 评论(0) 推荐(0) 编辑

POJ3928 - Ping pong

摘要: 题目大意一条大街上从西到东依次住着N个乒乓球爱好者,他们经常举办比赛。每个人都有一个不同的技能值a[i]。每场比赛需要三个人,一个裁判加两个爱好者,不过比赛有一个要求就是裁判的技能值需要在两个爱好者的中间,并且居住的位置也要求在两个爱好者的中间,问总共能够举办多少场比赛。题解LRJ《训练指南》上树状数组的例题,我们枚举每一个人当裁判的情况,对于第i个人当裁判,假设a[1]到a[i-1]有pre[i]个比a[i]小,那就有i-1-pre[i]个人比大。同样假设a[i+1]到a[n]有suc[i]个比a[i]小,则有n-i+1-suc[i]个人比a[i]大,那么第i个人当裁判将有pre[i]*(n 阅读全文

posted @ 2013-04-17 14:54 仗剑奔走天涯 阅读(343) 评论(0) 推荐(0) 编辑

导航