Description

给出三个1~n的排列a,b,c

∑1≤i,j≤n[ai<aj][bi<bj][ci<cj]

\sum\limits_{1\leq i,j\leq n}[a_i

n<=2e6

Solution

就是求长方体内的点的个数

很容易想到的是排序,然后扫描,用二维数据结构或者分治+数据结构维护
这样的复杂度是O(Nlog2N)O(N\log^2N)的

发掘此题的特殊性,a,b,c都是排列

那么考虑将三维数点转化成二维数点

可以容斥
对于下标对(x,y),我们先不考虑顺序,那么a,b,c中要么全部满足,要么满足两个

如果将这两个排列两两放在一起数,那么就可以容斥了

即设Pa,b=∑i,j[ai<aj][bi<bj]P_{a,b}=\sum\limits_{i,j}[a_i

考虑Pa,b+Pb,c+Pa,cP_{a,b}+P_{b,c}+P_{a,c}
这三种加起来,那么只满足两个的情况算了一遍,全部满足的情况算了3遍

即设

S=\sum\limits_{1\leq i,j\leq n}[a_i

S1=∑1≤i,j≤n[ai<aj][bi<bj]or[ci<cj][ai<aj]or[ci<cj][bi<bj]

S1=\sum\limits_{1\leq i,j\leq n}[a_i

那么S+S1就是全部的情况,3∗S+S1=Pa,b+Pb,c+Pa,c3*S+S1=P_{a,b}+P_{b,c}+P_{a,c}

成功转化为二维数点问题,排序+树状数组解决

Code

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define N 2000005
#define LL long long
using namespace std;
int a[N],b[N],c[N],n,s[N];
LL seed,dl;
LL rnd()
{return seed=((seed*(LL)19260817)^(LL)233333)&dl;
}
struct node
{int x,y;friend bool operator <(node x,node y){return x.x<y.x;}
}a1[N];
void gen(int *a)
{fo(i,1,n) a[i]=i;fo(i,1,n) swap(a[i],a[rnd()%i+1]);
}
int lowbit(int k)
{return k&(-k);
}
void put(int k)
{while(k<=n) s[k]++,k+=lowbit(k);
}
LL fd(int k)
{LL s1=0;while(k) s1+=s[k],k-=lowbit(k);return s1;
}
LL get(int *a,int *b)
{fo(i,1,n) a1[i].x=a[i],a1[i].y=b[i];sort(a1+1,a1+n+1);memset(s,0,sizeof(s));LL ans=0;fo(i,1,n) ans+=fd(a1[i].y-1),put(a1[i].y);return ans;
}
int main()
{freopen("dalao.in","r",stdin);freopen("dalao.out","w",stdout);dl=(1<<24)-1;cin>>n;scanf("%lld",&seed),gen(a);scanf("%lld",&seed),gen(b);scanf("%lld",&seed),gen(c);LL ans=get(a,b)+get(b,c)+get(c,a)-(LL)n*(LL)(n-1)/2;printf("%lld\n",ans/2);
}

[JZOJ5498]【清华集训2017模拟12.10】大佬的难题相关推荐

  1. JZOJ5498. 【清华集训2017模拟12.10】大佬的难题

    Sample Input Sample Input1: 4 201334450 1474105774 350932494 Sample Input2: 97670 1734691087 7596883 ...

  2. jzoj5498 【清华集训2017模拟12.10】大佬的难题 巧妙容斥

    分治容斥都想了,但想不出正解.. 先说60分的吧 先排序a,然后在b,c上分治. 我们将b两边归并的同时,用数据结构维护b比当前小的c都在哪些地方. 这样就是n log2 n 再说说正解 记a[x] ...

  3. JZOJ 5489. 【清华集训2017模拟11.28】海明距离

    Description 设有一长度为n的初始每个位置均为0的序列A.再给定一个长度为n的01序列B. 有Q个特殊的区间[li,ri],你可以选择将A中li到ri这些位置都变为1,当然你可以选择不变. ...

  4. JZOJ 5484. 【清华集训2017模拟11.26】快乐树

    Description 一棵树有n个节点,编号为0到n-1.有一条叫Owaski的狗在树上面走,每一次它可以从一个顶点走到它的任何一个相邻顶点.每个顶点有个可正可负的快乐度,Owaski也有一个快乐度 ...

  5. JZOJ 5483. 【清华集训2017模拟11.26】简单路径

    Description 给定一棵带边权的树,选择两条没有公共边的简单路径(长度可以为0),使得所有在任意一条路径上的边的异或和尽量大. Input 第一行一个数n表示点数,点的编号是0到n-1. 接下 ...

  6. JZOJ 5490. 【清华集训2017模拟11.28】图染色

    Description Input 第一行包括两个整数N,M. 接下来M行每行两个整数u,v,代表存在一条里连接 u,v的无向边.可能存在重边自环. Output 降序输出所有不为0的F(i) .保留 ...

  7. 【清华集训2017模拟】Catalan

    Description 求Cnmod3814697265625(518)C_n \mod 3814697265625(5^{18})其中CnC_n为卡特兰数第n项 n<=10^18,T<= ...

  8. Loj #2324. 「清华集训 2017」小 Y 和二叉树

    Loj #2324. 「清华集训 2017」小 Y 和二叉树 小Y是一个心灵手巧的OIer,她有许多二叉树模型. 小Y的二叉树模型中,每个结点都具有一个编号,小Y把她最喜欢的一个二叉树模型挂在了墙上, ...

  9. [LOJ#2329]「清华集训 2017」我的生命已如风中残烛

    [LOJ#2329]「清华集训 2017」我的生命已如风中残烛 试题描述 九条可怜是一个贪玩的女孩子. 这天她在一堵墙钉了 \(n\) 个钉子,第 \(i\) 个钉子的坐标是 \((x_i,y_i)\ ...

最新文章

  1. 博士生4篇高分论文参加答辩,却遭评委批评:你写的太多了
  2. 3D姿态估计|时序卷积+半监督训练
  3. ping: unknown host www.baidu.com问题解决
  4. php提示行号,在php中使用trigger_错误时如何获得正确的行号?
  5. 借助LDA主题分析的短文本相似性计算 - 综述帖
  6. 文巾解题 136. 只出现一次的数字
  7. Shell第二篇:正则表达式和文本处理工具
  8. STM32 Flash详解
  9. initrd in linux 2.6.32.27
  10. 谷歌金山词霸最终版下载地址公布
  11. steam游戏图标失效_如何将非Steam游戏添加到Steam并应用自定义图标
  12. 为什么程序员 996 会猝死,而老板 007 却不会? ​
  13. Java进阶 - MyBatis查询数据库 Spring Boot 单元测试 - 细节狂魔
  14. 数据库底层原理-------数据结构
  15. Biaofun分享给你什么是文案?
  16. 打印出一个数的每一位
  17. 2022数学建模国赛B题思路分析
  18. create connection SQLException, url: jdbc:mysqlAccess denied for user ‘CC‘@‘localhost‘ (using passwo
  19. HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学
  20. cocos2d-x-3.3-023-仿微信飞机大战-总体分析和建模

热门文章

  1. element-ui 上传图片后清空图片显示
  2. 1分钟快速了解MindMapper 与MindManager间的不同点
  3. JS一元运算符(前++,后++)详解
  4. java编写分数加减法_JAVA 分数加减法
  5. MT6129射频处理器,MT6129芯片原理资料介绍
  6. 车规级需要满足哪些规范?
  7. 预告 | 10月北京,工信部人才交流中心5G行业应用系列培训全面开启
  8. 2022全新Java学习路线图动力节点(七)架构师必备技术
  9. 《Enhanced Deep Residual Networks for Single Image Super-Resolution》论文阅读之EDSR
  10. 2048【浙江工商大学oj】