题目链接:hdu_4742_Pinball Game 3D

题意:

给你n个点,让你求三维的LIS,并且求出有多少种组合能达到LIS。

题解:

求三维的LIS,典型的三维偏序问题,x排序,解决一维,cdq分治y,解决一维,树状数组维护z,解决一维。

注意,cdq中sort不要调用太多,不然会被卡常。

 #include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef pair<int,int>P; const int N=1e5+,mod=<<;
int t,n,hsh_ed,hsh[N];
P sum[N],dp[N]; struct node
{
int x,y,z,id;
bool operator <(const node & b)const{return x<b.x||(x==b.x&&y<b.y)||(x==b.x&&y==b.y&&z<b.z);}
}a[N],b[N]; inline void up(P &a,P b)
{
if(a.first==b.first)a.second+=b.second;
else if(a.first<b.first)a=b;
}
inline void add(int x,P c){while(x<=hsh_ed)up(sum[x],c),x+=x&-x;}
inline P ask(int x){P an=P(,);while(x)up(an,sum[x]),x-=x&-x;return an;}
inline void back(int x){while(x<=hsh_ed)sum[x]=P(,),x+=x&-x;} void cdq(int l,int r)
{
if(l==r)return;
int mid=l+r>>;
cdq(l,mid);
F(i,l,r)b[i]=a[i],b[i].x=;
sort(b+l,b++r);
F(i,l,r)
{
if(b[i].id<=mid)add(b[i].z,dp[b[i].id]);
else
{
P now=ask(b[i].z);
if(now.first+>dp[b[i].id].first)dp[b[i].id]=P(now.first+,now.second);
else if(now.first+==dp[b[i].id].first)dp[b[i].id].second+=now.second;
}
}
F(i,l,r)if(b[i].id<=mid)back(b[i].z);
cdq(mid+,r);
} int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n),hsh_ed=;
F(i,,n)
{
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
hsh[i]=a[i].z;
}
sort(a+,a++n);
sort(hsh+,hsh++n),hsh_ed=unique(hsh+,hsh++n)-hsh;
F(i,,n)
{
dp[i]=P(,),a[i].id=i;
a[i].z=lower_bound(hsh+,hsh++hsh_ed,a[i].z)-hsh;
}
cdq(,n);
P ans=P(,);
F(i,,n)up(ans,dp[i]);
printf("%d %d\n",ans.first,ans.second%mod);
}
return ;
}

hdu_4742_Pinball Game 3D(cdq分治+树状数组)的更多相关文章

  1. Hdu4742-Pinball Game 3D(cdq分治+树状数组)

    Problem Description RD is a smart boy and excel in pinball game. However, playing common 2D pinball ...

  2. HDU 4247 Pinball Game 3D(cdq 分治+树状数组+动态规划)

    Pinball Game 3D Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. 【BZOJ4553】[Tjoi2016&Heoi2016]序列 cdq分治+树状数组

    [BZOJ4553][Tjoi2016&Heoi2016]序列 Description 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值可能 ...

  4. BZOJ 1176 Mokia CDQ分治+树状数组

    1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 1854  Solved: 821[Submit][St ...

  5. 【bzoj3262】陌上花开 CDQ分治+树状数组

    题目描述 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当且仅当Sa&g ...

  6. 【bzoj2225】[Spoj 2371]Another Longest Increasing CDQ分治+树状数组

    题目描述 给定N个数对(xi, yi),求最长上升子序列的长度.上升序列定义为{(xi, yi)}满足对i<j有xi<xj且yi<yj. 样例输入 8 1 3 3 2 1 1 4 5 ...

  7. BZOJ 2683 简单题 cdq分治+树状数组

    题意:链接 **方法:**cdq分治+树状数组 解析: 首先对于这道题,看了范围之后.二维的数据结构是显然不能过的.于是我们可能会考虑把一维排序之后还有一位上数据结构什么的,然而cdq分治却可以非常好 ...

  8. LOJ3146 APIO2019路灯(cdq分治+树状数组)

    每个时刻都形成若干段满足段内任意两点可达.将其视为若干正方形.则查询相当于求历史上某点被正方形包含的时刻数量.并且注意到每个时刻只有O(1)个正方形出现或消失,那么求出每个矩形的出现时间和消失时间,就 ...

  9. BZOJ 4553 [Tjoi2016&Heoi2016]序列 ——CDQ分治 树状数组

    考虑答案的构成,发现是一个有限制条件的偏序问题. 然后三个维度的DP,可以排序.CDQ.树状数组各解决一维. #include <map> #include <cmath> # ...

随机推荐

  1. ShopNC_WAP

    记录 ShopNC_WAP 端点点滴滴 插件记录 1.  http://www.jiawin.com/swipe-mobile-touch-slider   swiper 插件 2. https:// ...

  2. 想入门webpack,这篇就够了

    申明:本文转载自简书 文/zhangwang(简书作者)原文链接:http://www.jianshu.com/p/42e11515c10f#著作权归作者所有,转载请联系作者获得授权,并标注" ...

  3. Cg(C for Graphic)标准函数库之数学函数与几何函数

    和 C 的标准函数库类似, Cg 提供了一系列内建的标准函数.这些函数用于执行数学上的通用计算或通用算法(纹理映射等),例如,需要求取入射光线的反射光线方向向量可以使用标准函数库中的 reflect ...

  4. C# 3.0相比C# 2.0增加的功能

    1.自动属性 (1)自动属性(Auto-Implemented Properties),C#自动属性可以避免原来我们手工的来声明一个私有成员变量以及和属性get,set的书写. public clas ...

  5. .net c#通过Exif获取图片信息(参数)

    简介 想要获取图片的信息,例如快门速度.ISO值等等,我们可以通过读取Exif中存储的信息.Exif(Exchangeable Image File)是存储在JPEG格式照片头部的一段信息,相机和手机 ...

  6. 前端开发中的一些js小技巧

    1.获取某个月的天数 function getDate (year, month) { return new Date(year, month + 1, 0).getDate(); } 2.获取变量类 ...

  7. easy-ui 有依赖关系的下拉列表(省市区县)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Unity3DGUI:鼠标click

    Input函数监测鼠标操作 鼠标点击事件 鼠标双击事件

  9. .Net 第三方工具包整理

    抓取数据 Jumony (http://www.jumony.net/)是一个基于 .NET 技术,用 C# 编写的一个 HTML 引擎,其可以用来分析解读 HTML 文档中的数据,也可以修改和绑定数 ...

  10. 干货篇:揭开CSS盒模型神秘的面纱

    写博客可以对学习内容进行总结.分享和交流(面对面的技术分享会也不错)... 如果是单纯的记录,印象笔记完全够了. 步入正题,盒模型是web布局核心,掌握基础知识,以后实战中会如鱼得水~ 概念与历史 C ...