传送门

虽然是远古时期的ctsc,但是果然还是ctsc啊

前置芝士:树状数组

这个题最开始的思路很好想,由于之前写过一个类似处理的题,所以这个题我一开始就想到了思路。

首先,我们可以尝试讲图腾表示为xxxx的形式

那么闪电就是:1324;高山是:1243和1432

ans=1324-1243-1432

然后应该容斥一下,但是我不会了。。

瞄一眼题解,我成功吧那个式子容斥出来了。

ans=1324-1243-1432

ans=(1x2x-1423)-(14xx-1423)-(12xx-1234)

ans=1x2x-14xx-12xx+1234

ans=1x2x-1xxx+13xx+1234

然后我就震惊的发现,我又不会了,这次变成仔细的研究题解了,各种讨论情况啊,nb啊,大佬们

下面的讨论情况还是看洛谷题解的吧,太难写了。题解传送门

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
void read(int &x) {
char ch; bool ok;
for(ok=0,ch=getchar(); !isdigit(ch); ch=getchar()) if(ch=='-') ok=1;
for(x=0; isdigit(ch); x=x*10+ch-'0',ch=getchar()); if(ok) x=-x;
}
#define rg register
#define lowbit(i) (i&(-i))
#define ls (get(a[i]))
#define rs (a[i]-1-ls)
#define lb (i-1-l[i])
#define rb (n-i-r[i])
const int mod=16777216,maxn=2e5+1;
int n,ans,a[maxn],f[maxn],now,l[maxn],r[maxn];
void add(int x,int y){for(rg int i=x;i<=n;i+=lowbit(i))(f[i]+=y)%=mod;}
int get(int x){int ans=0;for(rg int i=x;i;i-=lowbit(i))ans+=f[i];return ans;}
int C(int n,int m){return 1ll*n*(n-1)*(n-2)/6%mod;}
int main()
{
read(n);
for(rg int i=1;i<=n;i++)read(a[i]),l[i]=ls,r[i]=a[i]-1-l[i],add(a[i],1);
memset(f,0,sizeof f);
for(rg int i=1;i<=n;i++)
{
ans=((ans+(l[i]*(i-1)-get(a[i])-l[i]*(l[i]-1)/2)*rb)%mod+mod)%mod,
ans=((ans-C(rb,3))%mod+mod)%mod;
add(a[i],i);
}
memset(f,0,sizeof f);
for(rg int i=n;i;i--)ans=((ans+(1ll*get(a[i])-1ll*r[i]*(r[i]-1)/2)*rb)%mod+mod)%mod,add(a[i],a[i]-1);
memset(f,0,sizeof f);now=0;
for(rg int i=1;i<=n;i++)ans=(ans+1ll*rb*get(a[i]))%mod,add(a[i],l[i]);
printf("%d\n",ans);
}

最新文章

  1. Android系统属性简介
  2. xcode配置绝对路径与相对路径
  3. AutoMapper小结
  4. android textview 跑马灯
  5. Java排序
  6. Spring Batch Concepts Chapter
  7. Html笔记(六)超链接
  8. hdu-1890-Robotic Sort splay区间翻转
  9. UVA 12075 - Counting Triangles(容斥原理计数)
  10. 快捷键accesskey
  11. Alyona and mex
  12. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)
  13. 【B2B】2015 年B2B的春天
  14. Coins、Tokens、山寨币:区别在哪里
  15. YUV的数据格式
  16. [CC-LONCYC]Lonely Cycles
  17. 20155226《网络攻防》 Exp5 MSF基础应用
  18. Study From DevOps 学习交流会议
  19. apply、map、applymap、Dropna
  20. PHP:第四章——PHP数组转换,统计,相关函数

热门文章

  1. xcode7和ios9下UIWebView不能加载网页的解决方法
  2. Linux集群基础
  3. HDU 1829/POJ 2492 A Bug&#39;s Life
  4. 「USACO16OPEN」「LuoguP3147」262144(区间dp
  5. eclipse导入jsp文件第一行报错
  6. bzoj 1798 Seq 维护序列seq —— 线段树
  7. Firebug的安装与使用
  8. Codeforces Round #408( Div2)
  9. SpringMVC配置字符过滤器的两种方式
  10. HUD-1548