Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1145

Solution:

算是一道神题了吧

设 f(abcd)为:当选出的四个数相对大小关系为abcd时,有多少种选择方式

则 res = f(1324) - f(1243) -f(1432)

拆分法转化此问题
f(1324) = f(1x2x) - f(1423)
f(1243) = f(12xx) - f(1234)
f(1432) = f(14xx) - f(1432)

所以res = f(1x2x) + f(1234) - f(12xx) - f(14xx)
             = f(1x2x) + f(1234) + f(13xx) - f(1xxx)

预处理求出l[i],r[i]表示在i的左/右,比a[i]小的个数

可以先用树状数组求l[i],则r[i]=(a[i]-l[i]-1)

接下来对每一种情况分类讨论即可:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll; const int MAXN=2e5+;
const int MOD=; int n,dat[MAXN],bit[MAXN],l[MAXN],r[MAXN]; void Update(int pos,int val)
{
while(pos<=n)
bit[pos]+=val,pos+=pos&(-pos);
} int Query(int pos)
{
int ret=;
while(pos)
ret+=bit[pos],pos-=pos&(-pos);
return ret;
} int cal1()//1x2x
{
memset(bit,,sizeof(bit));int ret=;
for(int i=;i<=n;i++)
ret=(ret+((1ll*(n-i-r[i])*(l[i]*(i-)-Query(dat[i])-l[i]*(l[i]-)/))&MOD))&MOD,
Update(dat[i],i-);
return ret;
} int cal2()//1234
{
memset(bit,,sizeof(bit));int ret=;
for(int i=;i<=n;i++)
ret=(ret+(1ll*(n-i-r[i])*Query(dat[i])&MOD))&MOD,
Update(dat[i],l[i]);
return ret;
} int cal3()//13xx
{
memset(bit,,sizeof(bit));int ret=;
for(int i=n;i>;i--)
ret=(ret+(1ll*(n-r[i]-i)*(Query(dat[i])-r[i]*(r[i]-)/)&MOD))&MOD,
Update(dat[i],dat[i]-);
return ret;
} int cal4()//1xxx
{
memset(bit,,sizeof(bit));int ret=;
for(int i=;i<=n;i++)
{
int t=n-i-r[i];
ret=(ret+(1ll*t*(t-)*(t-)/&MOD))&MOD;
}
return ret;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&dat[i]);
l[i]=Query(dat[i]);r[i]=dat[i]--l[i];
Update(dat[i],);
} printf("%d",(cal1()+cal2()+cal3()-cal4()+MOD+)&MOD);
return ;
}

Review:

1、16777216是2的24次方

可以用按位与来优化mod

2、思路的借鉴:

一般此类序列性问题,当每一位都确定时反而难以求解

于是我们将确定转化为不确定来统一计算答案

[BZOJ 1145] 图腾totem的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. ImageNet2017文件下载

    ImageNet2017文件下载 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL ...

  3. ImageNet2017文件介绍及使用

    ImageNet2017文件介绍及使用 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PAS ...

  4. HTML5之2D物理引擎 Box2D for javascript Games 系列 第三部分之创建图腾破坏者的关卡

    创建图腾破坏者的关卡 现在你有能力创建你的第一个游戏原型,我们将从创建图腾破坏者的级别开始. 为了展示我们所做事情的真实性,我们将流行的Flash游戏图腾破坏者的一关作为 我们模仿的对象.请看下面的截 ...

  5. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  6. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  7. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  8. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  9. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

随机推荐

  1. AWS CLI command example

    1.list ec2 instance-id, instance status, type, ip address, name aws ec2 describe-instances --query ' ...

  2. (转)Python中实现带Cookie的Http的Post请求

    转自crifan: http://www.crifan.com/python_http_post_request_with_cookie/ . . . .

  3. Android百度定位地图使用--文章集锦

    Android百度定位API使用方法 Android百度地图开发(一)之初体验 AndroidNote013.在百度地图上画出轨迹 Android学习笔记之百度地图(分条目覆盖物:ItemizedOv ...

  4. jsp小知识点(2)

    一:自定义的函数库:在wh.tld中 <description>JSTL 1.1 functions library</description> <display-nam ...

  5. Drupal7所见即所得模块CKEditor

    初学Drupal(7.26),刚好遇到一个需要用到CKEditor模块的项目,于是就摸索着把它给装上了. 图片上传出问题 回到Drupal7的管理页面后刚好发现了对于CKEditor的“状态报告”(错 ...

  6. JVM 性能排查--汇总

    参考:http://blog.sina.com.cn/s/blog_61d758500102wnus.html

  7. 51nod 1791 合法括号子段

    有一个括号序列,现在要计算一下它有多少非空子段是合法括号序列. 合法括号序列的定义是: 1.空序列是合法括号序列. 2.如果S是合法括号序列,那么(S)是合法括号序列.3.如果A和B都是合法括号序列, ...

  8. 游戏中的过程生成——元胞自动机 Celluar Automata 生成洞穴地形

    最近在学习过程生成技术,在这里写一些心得. 对于元胞自动机,我们这里只讨论输入是一副二维bool数组的情况,即大多数游戏中的情况. 一个元胞自动机,对于一个输入,给出一个同样格式的输出.输出中的每个点 ...

  9. HDU 1141 Factstone Benchmark (数学 )

    题目链接 Problem Description Amtel has announced that it will release a 128-bit computer chip by 2010, a ...

  10. web前端 CSS基础

    简单的CSS文件 <style type="text/css"> a{ color:rebeccapurple; font-size: larger; font-wei ...