hdu5273dp
来源:互联网 发布:独创科技网络 编辑:程序博客网 时间:2024/06/05 03:54
import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;import java.math.BigInteger;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;import java.util.Scanner;import java.util.Stack;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException{ StreamTokenizer cin = new StreamTokenizer(new BufferedInputStream(System.in)); InputReader in = new InputReader(System.in) ; PrintWriter out = new PrintWriter(System.out) ; while(cin.nextToken() != cin.TT_EOF){ new Task().solve(cin, out) ; } out.flush() ; }}class Task{ int[] a ; int[][] dp ; public void solve(StreamTokenizer cin , PrintWriter out) throws IOException{ int n = (int)cin.nval ; cin.nextToken() ; int q = (int)cin.nval ; a = new int[n+1] ; dp = new int[n+1][n+1] ; for(int i = 1 ; i <= n ; i++){ cin.nextToken() ; a[i] = (int)cin.nval ; } for(int i = 0 ; i <= n ; i++) Arrays.fill(dp[i] , 0) ; for(int i = 1 ; i <= n ; i++){ dp[1][i] = dp[1][i-1] ; for(int j = 1 ; j < i ; j++){ if(a[j] > a[i]) dp[1][i]++ ; } } for(int i = 2 ; i <= n ; i++){ int k = 0 ; for(int j = i ; j <= n ; j++){ if(a[i-1] > a[j]) k++ ; dp[i][j] = dp[i-1][j] - k ; } } while(q-- > 0){ cin.nextToken() ; int l = (int) cin.nval ; cin.nextToken() ; int r = (int) cin.nval ; out.println(dp[l][r]) ; } // out.flush(); }}class InputReader{ public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream){ reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = null; } public String next(){ while(tokenizer == null || !tokenizer.hasMoreTokens()){ try{ tokenizer = new StringTokenizer(reader.readLine()); }catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } public long nextLong() { return Long.parseLong(next()); }}
0 0
- hdu5273dp
- iOS开发 偷懒小技巧---自定义XCode代码片段
- java中Date,String,timestamp转换问题
- OC_类和对象
- C#接口学习1
- Ubuntu 下安装 Atom
- hdu5273dp
- Java 数组基础
- (LeetCode)两个链表的第一个公共节点
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Github 主页:https://github.com/RunningYoung
- C# Socket的TCP通讯
- Eclipse 连接 Hadoop 开发环境
- android四大组件详解
- 三维BFS poj2251 Dungeon Master