[BZOJ 1145] 图腾totem
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的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- ImageNet2017文件下载
ImageNet2017文件下载 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL ...
- ImageNet2017文件介绍及使用
ImageNet2017文件介绍及使用 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PAS ...
- HTML5之2D物理引擎 Box2D for javascript Games 系列 第三部分之创建图腾破坏者的关卡
创建图腾破坏者的关卡 现在你有能力创建你的第一个游戏原型,我们将从创建图腾破坏者的级别开始. 为了展示我们所做事情的真实性,我们将流行的Flash游戏图腾破坏者的一关作为 我们模仿的对象.请看下面的截 ...
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
随机推荐
- AWS CLI command example
1.list ec2 instance-id, instance status, type, ip address, name aws ec2 describe-instances --query ' ...
- (转)Python中实现带Cookie的Http的Post请求
转自crifan: http://www.crifan.com/python_http_post_request_with_cookie/ . . . .
- Android百度定位地图使用--文章集锦
Android百度定位API使用方法 Android百度地图开发(一)之初体验 AndroidNote013.在百度地图上画出轨迹 Android学习笔记之百度地图(分条目覆盖物:ItemizedOv ...
- jsp小知识点(2)
一:自定义的函数库:在wh.tld中 <description>JSTL 1.1 functions library</description> <display-nam ...
- Drupal7所见即所得模块CKEditor
初学Drupal(7.26),刚好遇到一个需要用到CKEditor模块的项目,于是就摸索着把它给装上了. 图片上传出问题 回到Drupal7的管理页面后刚好发现了对于CKEditor的“状态报告”(错 ...
- JVM 性能排查--汇总
参考:http://blog.sina.com.cn/s/blog_61d758500102wnus.html
- 51nod 1791 合法括号子段
有一个括号序列,现在要计算一下它有多少非空子段是合法括号序列. 合法括号序列的定义是: 1.空序列是合法括号序列. 2.如果S是合法括号序列,那么(S)是合法括号序列.3.如果A和B都是合法括号序列, ...
- 游戏中的过程生成——元胞自动机 Celluar Automata 生成洞穴地形
最近在学习过程生成技术,在这里写一些心得. 对于元胞自动机,我们这里只讨论输入是一副二维bool数组的情况,即大多数游戏中的情况. 一个元胞自动机,对于一个输入,给出一个同样格式的输出.输出中的每个点 ...
- HDU 1141 Factstone Benchmark (数学 )
题目链接 Problem Description Amtel has announced that it will release a 128-bit computer chip by 2010, a ...
- web前端 CSS基础
简单的CSS文件 <style type="text/css"> a{ color:rebeccapurple; font-size: larger; font-wei ...