思路:

此题显然是CDQ套CDQ套树套树

然而我懒

想用一种奇怪的姿势卡过去

就出现了以下解法

5w*5w/8的bitset   hiahiahia

但是空间会爆怎么办啊…   折半~ 变成5w*2.5w/8完美卡过去

时间会慢很多么    并没有~~完全可以过 甚至比某些姿势不好的树套树快hiahiahia

代码是不是很短~

//By SiriusRen
#include <bitset>
#include <cstdio>
#include <algorithm>
using namespace std;
int n;long long ans;
bitset<25000>b[50000],jy;
struct Node{int a,b,c,id;}node[50000];
bool cmpa(const Node &a,const Node &b){return a.a<b.a;}
bool cmpb(const Node &a,const Node &b){return a.b<b.b;}
bool cmpc(const Node &a,const Node &b){return a.c<b.c;}
inline int rd(){
int x=0;char p=getchar();
while(p<'0'||p>'9')p=getchar();
while(p>='0'&&p<='9')x=x*10+p-'0',p=getchar();
return x;
}
int main(){
freopen("partial_order.in","r",stdin);
freopen("partial_order.out","w",stdout);
scanf("%d",&n);
register int i;
for(i=0;i<n/2;i++)b[i]|=jy,jy.set(i);
for(i=n/2;i<n;i++)b[i]|=jy;
for(i=0;i<n;i++)node[i].a=rd();
for(i=0;i<n;i++)node[i].b=rd();
for(i=0;i<n;node[i].id=i,i++)node[i].c=rd();
jy.reset();sort(node,node+n,cmpa);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id<n/2)jy.set(node[i].id);}
jy.reset();sort(node,node+n,cmpb);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id<n/2)jy.set(node[i].id);}
jy.reset();sort(node,node+n,cmpc);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id<n/2)jy.set(node[i].id);}
for(i=0;i<n;i++)ans+=b[i].count();
jy.reset();
for(i=0;i<n;i++)b[i].reset();
for(i=n/2;i<n;i++)b[i]|=jy,jy.set(i-n/2);
jy.reset();sort(node,node+n,cmpa);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id>=n/2)jy.set(node[i].id-n/2);}
jy.reset();sort(node,node+n,cmpb);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id>=n/2)jy.set(node[i].id-n/2);}
jy.reset();sort(node,node+n,cmpc);
for(i=0;i<n;i++){b[node[i].id]&=jy;if(node[i].id>=n/2)jy.set(node[i].id-n/2);}
for(i=0;i<n;i++)ans+=b[i].count();
printf("%lld\n",ans);
}

COGS 2479 奇怪的姿势卡♂过去 (bitset+折半)的更多相关文章

  1. BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势

    1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1513 Solved: 1154 [Submit] ...

  2. Redis奇怪的姿势

    Redis奇怪的姿势 写在前面 之前渗透 摸鱼 时和小伙伴发现了一个redis,存在未授权,是win服务器但是没有路径,度娘了之后发现了这个姿势,特此学习记录一下. 写入启动项 环境搭建 window ...

  3. cogs 558 奇怪的函数

    提交地址:http://cojs.tk/cogs/problem/problem.php?pid=558 558. 奇怪的函数 ★☆   输入文件:xx.in   输出文件:xx.out   简单对比 ...

  4. 【卡常 bitset 分块】loj#6499. 「雅礼集训 2018 Day2」颜色

    好不容易算着块大小,裸的分块才能过随机极限数据:然而这题在线的数据都竟然是构造的…… 题目描述 有 $n$ 个数字,第 $i$ 个数字为 $a_i$. 有 $m$ 次询问,每次给出 $k_i$ 个区间 ...

  5. COGS 2479 偏序 题解

    [题意] 给定一个有n个元素的序列,元素编号为1~n,每个元素有三个属性a,b,c,求序列中满足i<j且ai<aj且bi<bj且ci<cj的数对(i,j)的个数. 对于30%的 ...

  6. COGS 2479. [HZOI 2016]偏序 [CDQ分治套CDQ分治 四维偏序]

    传送门 给定一个有n个元素的序列,元素编号为1~n,每个元素有三个属性a,b,c,求序列中满足i<j且ai<aj且bi<bj且ci<cj的数对(i,j)的个数. 对于100%的 ...

  7. COGS 2479. [HZOI 2016] 偏序 (CDQ套CDQ)

    传送门 解题思路 四维偏序问题,模仿三维偏序,第一维排序,第二维CDQ,最后剩下二元组,发现没办法处理,就继续嵌套CDQ分治.首先把二元组的左右两边分别打上不同的标记,因为统计答案时只统计左边对右边的 ...

  8. loj515 贪心只能过样例(bitset)

    题目: https://loj.ac/problem/515 分析: 所有可能和的最大值是1e6 如果dp的话,dp[i][j]表示前i个数能否凑出和为j的数 这样是O(n^5)的 考虑到[j]可以用 ...

  9. bzoj题目分类

    转载于http://blog.csdn.net/creationaugust/article/details/513876231000:A+B 1001:平面图最小割,转对偶图最短路 1002:矩阵树 ...

随机推荐

  1. CodeForces--606A --Magic Spheres(模拟水题)

    Magic Spheres Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submi ...

  2. flask之jinji2模板介绍

    1.1.模板传参 (1)主程序   from flask import Flask,render_template app = Flask(__name__) @app.route('/') def ...

  3. mybatis的二级缓存的使用

    1.引入ehcache的jar包和mybatis整合ehcache的jar包: <!-- ehchache --> <dependency> <groupId>ne ...

  4. JavaScript基础知识-正则表达式

    正则表达式 作用:定义一个特定的验证字符串内容规则的表达式 注:正则表达式并不是JavaScript独有的:JavaScript支持正则表达式 var a = { };  // 定义一个空对象     ...

  5. mysql update join优化update in查询效率

    数据库版本:5.6.16 update in 修改数据,结果执行时间过慢,一直不出结果. SQL语句及执行计划如下: UPDATE erp_order_extra SET last_time=1231 ...

  6. SecurityManager USE

    import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io. ...

  7. Windows2003 安装MVC4 环境的步骤

    一.作为部署服务器的安装步骤 1.服务器上安装SP2 和 IIS6 2.安装.Net Framework3.5 SP1(完整安装包,包含2.0 2.0SP1,237MB那个安装包) 3.安装.Net ...

  8. js获取当前位置的地理坐标(经纬度)

    在 freecodecamp 上学习时,碰到获取地理坐标问题.写个笔记纪录下. if(navigator.geolocation) { navigator.geolocation.getCurrent ...

  9. 双十一只是在搞噱头么?看看ABBYY FineReader就知道了

    双十一就这样轰轰烈烈的度过了,想问恢复正常工作日的你还好么,还能好好工作么,十分钟查一次物流的有木有? 由于ABBYY FineReader 12 限量200套半价活动过于火爆,各位小主也是用实际行动 ...

  10. servlet中地址详细分析

    path路径的写法 假设; 项目名为day01 webroot下存放静态文件demo.html 转发 request.getRequestDispatcherType("path" ...