HDU 4325 Contest 3
很明显的区间加减单点查询。但由于规模大,于是离散化。在离散化的时候,可以把要查询的点也加入离散化的数组中。
- #include <iostream>
- #include <algorithm>
- #include <cstdio>
- #include <cstring>
- #define lowbit(x) ((x)&(-x))
- #define LL __int64
- using namespace std;
- int tpoint[400010];
- int save[100010];
- int a[400020];
- struct flower{
- int bgn,en;
- }TF[100010];
- int np,al;
- int sum(int x){
- int s=0;
- for(;x;x-=lowbit(x))s+=a[x];
- return s;
- }
- void update(int x,int w){
- for(;x<=np;x+=lowbit(x))
- a[x]+=w;
- }
- int find(int p){
- int l=1,r=np;
- while(l<=r){
- int mid=(l+r)/2;
- if(tpoint[mid]==p)
- return mid;
- else if(tpoint[mid]<p)
- l=mid+1;
- else if(tpoint[mid]>p)
- r=mid-1;
- }
- }
- int main(){
- int T,n,m,p,su,kase=0; int pos;;
- scanf("%d",&T);
- while(T--){
- scanf("%d%d",&n,&m);
- np=1;
- memset(a,0,sizeof(a));
- for(int i=1;i<=n;i++){
- scanf("%d%d",&TF[i].bgn,&TF[i].en);
- tpoint[np++]=TF[i].bgn; tpoint[np++]=TF[i].en;
- }
- for(int i=1;i<=m;i++){
- scanf("%d",&p);
- tpoint[np++]=p;
- save[i]=p;
- }
- sort(tpoint+1,tpoint+np);
- np=unique (tpoint+1, tpoint + np) - tpoint;
- for(int i=1;i<=n;i++){
- int f=find(TF[i].bgn);
- int b=find(TF[i].en);
- update(f,1);
- update(b+1,-1);
- }
- printf("Case #%d:\n",++kase);
- for(int i=1;i<=m;i++){
- pos=find(save[i]);
- printf("%d\n",sum(pos));
- }
- }
- }
HDU 4325 Contest 3的更多相关文章
- (线段树 区间运算求点)Flowers -- hdu -- 4325
http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others) Mem ...
- HDU 4325 Flowers(树状数组+离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 题意:给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x. 思路: 因为数据量比较多,所以需 ...
- hdu 4325 Flowers(区间离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others) Mem ...
- HDU 5045 Contest(状压DP)
Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...
- hdu - 5045 - Contest(国家压缩dp)
意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...
- [ACM] hdu 5045 Contest (减少国家Dp)
Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...
- HDU 4325 Flowers(树状数组)
Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- HDU–5988-Coding Contest(最小费用最大流变形)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- HDU 4325 Flowers 树状数组+离散化
Flowers Problem Description As is known to all, the blooming time and duration varies between differ ...
随机推荐
- CAD教程--嵌入表格
1.第一步,打开excel复制一下表格 2.第二步,打开CAD,选择编辑->选择性粘贴->autocad图元,左键点击一下图就行了,找找图,放大到适合的比例就行了.
- ASPX和Razor
ASPX ASPX文件是微软的在server端运行的动态网页文件,通过IIS解析运行后能够得到动态页面,是微软推出的一种新的网络编程方法,而不是ASP的简单升级,由于它的编程方法和ASP有非常大的不同 ...
- AI安全初探——利用深度学习检测DNS隐蔽通道
AI安全初探——利用深度学习检测DNS隐蔽通道 目录 AI安全初探——利用深度学习检测DNS隐蔽通道 1.DNS 隐蔽通道简介 2. 算法前的准备工作——数据采集 3. 利用深度学习进行DNS隐蔽通道 ...
- [jzoj 3175] 数树数 解题报告 (树链剖分)
interlinkage: https://jzoj.net/senior/#main/show/3175 description: 给定一棵N 个节点的树,标号从1~N.每个点有一个权值.要求维护两 ...
- webstorm配置Monokai-Sublime.jar主题
https://github.com/OtaK/jetbrains-monokai-sublime 导入下载的Monokai-Sublime.jar jar包即可使用.
- 17. Letter Combinations of a Phone Number[M]电话号码的字母组合
题目 Given a string containing digits from 2-9 inclusive, return all possible letter combinations that ...
- tableview偏移
tableview偏移 方法一:改变edgesForExtendedLayout self.edgesForExtendedLayout = UIRectEdgeNone; 将edgesForExte ...
- Codeforces 994A. Fingerprints
题意 从x数组中找到最多的y数组中有的数字,按在x数组中出现的顺序输出. 注意 这题x数组和y数组都不会出现重复数字. 代码 #include <bits/stdc++.h> using ...
- 「JavaSE 重新出发」05.03.01 利用反射分析类
在 java.lang.reflect 包中有三个类 Field, Method 和 Constructor 分别用于描述类的域.方法和构造器. Class 类中的 getFields, getMet ...
- hiho 1476 - 矩形计数 容斥
题目链接 如图所示,在由N行M列个单位正方形组成的矩形中,有K个单位正方形是黑色的,其余单位正方形是白色的. 你能统计出一共有多少个不同的子矩形是完全由白色单位正方形组成的吗? ----------- ...