lightoj 1088【树状数组+离散化】
题意:
给你n个数,然后给你q个区间,然后问你这n个数有多少个在这个区间上;
思路:
树状数组搞搞,但是注意到数的范围很大,所以先离散化一下。
初始化初始化!!!卧槽,wa的我好郁闷。。。
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- const int N=2e5+10;
- int arr[N];
- int c[N*4];
- int n,Q;
- void add(int i)
- {
- while(i<=n+2*Q)
- {
- c[i]+=1;
- i+=i&(-i);
- }
- }
- int Sum(int i)
- {
- int ans=0;
- while(i>0)
- {
- ans+=c[i];
- i-=i&(-i);
- }
- return ans;
- }
- vector<int>xs;
- int main()
- {
- int T,cas=1;
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d%d",&n,&Q);
- xs.clear();
- for(int i=1;i<=n;i++)
- {
- scanf("%d",&arr[i]);
- xs.push_back(arr[i]);
- }
- for(int i=1;i<=2*Q;i+=2)
- {
- scanf("%d%d",&arr[n+i],&arr[n+i+1]);
- xs.push_back(arr[n+i]);
- xs.push_back(arr[n+i+1]);
- }
- sort(xs.begin(),xs.end());
- vector<int>::iterator e=unique(xs.begin(),xs.end());
- for(int i=1;i<=n+2*Q;i++)
- arr[i]=lower_bound(xs.begin(),e,arr[i])-xs.begin()+1;
- memset(c,0,sizeof(c));
- for(int i=1;i<=n;i++)
- add(arr[i]);
- printf("Case %d:\n",cas++);
- for(int i=1;i<=2*Q;i+=2)
- printf("%d\n",Sum(arr[n+i+1])-Sum(arr[n+i]-1));
- }
- return 0;
- }
- /*
- 10
- 5 3
- 0 0 0 0 0
- 1 2
- 1 3
- 1 2
- */
lightoj 1088【树状数组+离散化】的更多相关文章
- LightOJ 1085(树状数组+离散化+DP,线段树)
All Possible Increasing Subsequences Time Limit:3000MS Memory Limit:65536KB 64bit IO Format: ...
- hdu4605 树状数组+离散化+dfs
Magic Ball Game Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- BZOJ_5055_膜法师_树状数组+离散化
BZOJ_5055_膜法师_树状数组+离散化 Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然 ...
- POJ 2299 【树状数组 离散化】
题目链接:POJ 2299 Ultra-QuickSort Description In this problem, you have to analyze a particular sorting ...
- BZOJ-1227 虔诚的墓主人 树状数组+离散化+组合数学
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MB Submit: 914 Solved: 431 [Submit][Statu ...
- POJ 2299 树状数组+离散化求逆序对
给出一个序列 相邻的两个数可以进行交换 问最少交换多少次可以让他变成递增序列 每个数都是独一无二的 其实就是问冒泡往后 最多多少次 但是按普通冒泡记录次数一定会超时 冒泡记录次数的本质是每个数的逆序数 ...
- [HDOJ4325]Flowers(树状数组 离散化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4325 关于离散化的简介:http://blog.csdn.net/gokou_ruri/article ...
- Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6321 Solved: 2628[Su ...
- CF 61E 树状数组+离散化 求逆序数加强版 三个数逆序
http://codeforces.com/problemset/problem/61/E 题意是求 i<j<k && a[i]>a[j]>a[k] 的对数 会 ...
随机推荐
- xpath 轴,节点之间的关系
http://www.w3school.com.cn/xpath/xpath_axes.asp http://www.freeformatter.com/xpath-tester.html 测试 轴可 ...
- LeetCode(83)题解: Remove Duplicates from Sorted List
https://leetcode.com/problems/remove-duplicates-from-sorted-list/ 题目: Given a sorted linked list, de ...
- javascript 中 "undefined" 与 "is not defined" 分析
var var1; console.log( typeof var0);//print "undefined",主要看下面对var0单独的输出 console.log( typ ...
- Hibernate表关系映射之一对一映射
一.数据表的映射关系 在数据库领域中,数据表和数据表之间关系一般可以分为如下几种: 一对一:比如公民和身份证的关系,一个人只有一张身份证,同时每张身份证也仅仅对应一个人! 一对多:比如客户和订单之间的 ...
- react面试宝典
调用 setState 之后发生了什么? 在代码中调用setState函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(Reconciliation).经过调和过程 ...
- mongodb学习之:GridFS
GridFS是一种在Mongodb中存储大二进制文件的机制.GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片.音频.视频等). 使用GridFS有如下几个原因: 1 利用 ...
- 03-树1 树的同构(25 point(s)) 【Tree】
03-树1 树的同构(25 point(s)) 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为 ...
- 使用eclipse的SVN连接码云
码云配置: 码云的项目上,启用SVN访问 eclipse的配置,不配置这个会报错
- LoadRunner监控Linux与Windows方法
1.首先保证被监视的windows系统开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service: 2.被监视的WINDOWS机器:右击我的 ...
- hdu 2671 shǎ崽 OrOrOrOrz(排序)
题意:排序后按题目要求输出 思路:排序 #include<iostream> #include<stdio.h> #include<algorithm> using ...