| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Java 树状数组package poj_2352;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
public class Main {
public static final int max=40000;
public static int[] c=new int[max];
public static int lowbit(int x) {
return x&(-x);
}
public static void add(int x,int y) {
for(int i=x;i<=max;i+=lowbit(i))
c[i]+=y;
}
public static int ask(int x) {
int ans=0;
for(int i=x;i>0;i-=lowbit(i))
ans+=c[i];
return ans;
}
public static void main(String[] args) throws NumberFormatException, IOException {
InputReader sc=new InputReader(System.in);
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
int n=sc.nextInt();
int[] res=new int[n];
for(int i=0;i<n;i++) {
int x=sc.nextInt()+1;
int y=sc.nextInt();
int temp=ask(x);
res[temp]++;
add(x,1);
}
for(int i=0;i<n;i++)
out.println(res[i]);
out.flush();
}
}
class InputReader{
StreamTokenizer sc;
public InputReader(InputStream stream) {
sc=new StreamTokenizer(new BufferedReader(new InputStreamReader(stream)));
sc.ordinaryChars(33,126);
sc.wordChars(33,126);
}
public String next() throws IOException {
sc.nextToken();
return sc.sval;
}
public int nextInt() throws NumberFormatException, IOException {
return Integer.parseInt(next());
}
public long nextLong() throws NumberFormatException, IOException {
return Long.parseLong(next());
}
public boolean hasNext() throws IOException {
int res=sc.nextToken();
sc.pushBack();
return res!=sc.TT_EOF;
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator