luogu P2154 [SDOI2009]虔诚的墓主人
下面记一个点上下左右点数分别为\(u_i,d_i,l_i,r_i\)
枚举每个中间点太慢了,考虑枚举两个点之间横的一条线段,这里面的点左边点数目都相同,右边点数目都相同,然后只要查一下区间内\(\sum_{i=x_L+1}^{x_R-1} \binom{u_i}{k}\binom{d_i}{k}\)乘上\(\binom{l_L}{k}\binom{r_R}{k}\)就是这一段的贡献.写的时候按照纵坐标排序枚举点,然后每两个相邻点算区间的答案,区间的\(\binom{u_i}{k}\binom{d_i}{k}\)可以树状数组维护,每次处理完这个纵坐标后进行单点修改即可
#include<bits/stdc++.h>
#define LL long long
#define uLL unsigned long long
#define db double
using namespace std;
const int N=1e5+10;
const LL mod=2147483648;
int rd()
{
int x=0,w=1;char ch=0;
while(ch<'0'||ch>'9'){if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
struct node
{
int x,y;
bool operator < (const node &bb) const {return x!=bb.x?x<bb.x:y<bb.y;}
}a[N];
int n,kk,bb[N],m;
LL ans,c[N][11],bt[N],nb[N],cl[N],cr[N];
void add(int x,LL y){while(x<=m) bt[x]=(bt[x]+y)%mod,x+=x&(-x);}
LL gsm(int x){LL an=0;while(x) an=(an+bt[x])%mod,x-=x&(-x);return an;}
int main()
{
rd(),rd();
n=rd();
for(int i=1;i<=n;++i)
{
a[i].x=rd(),a[i].y=rd();
bb[++m]=a[i].y;
}
sort(bb+1,bb+m+1),m=unique(bb+1,bb+m+1)-bb-1;
for(int i=1;i<=n;++i) a[i].y=lower_bound(bb+1,bb+m+1,a[i].y)-bb;
sort(a+1,a+n+1);
kk=rd();
for(int i=0;i<=n;++i)
{
c[i][0]=1;
for(int j=1;j<=i&&j<=kk;++j) c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
}
for(int i=1;i<=n;++i) ++cr[a[i].y];
for(int i=1,j=1;i<=n;++j)
{
while(j<n&&a[j+1].x==a[j].x) ++j;
LL nl=1,nr=j-i;
for(int k=i;k<j;++k,++nl,--nr)
ans=(ans+(gsm(a[k+1].y-1)-gsm(a[k].y)+mod)%mod*c[nl][kk]%mod*c[nr][kk]%mod)%mod;
while(i<=j)
{
add(a[i].y,mod-nb[a[i].y]);
++cl[a[i].y],--cr[a[i].y];
nb[a[i].y]=c[cl[a[i].y]][kk]*c[cr[a[i].y]][kk]%mod;
add(a[i].y,nb[a[i].y]);
++i;
}
}
printf("%lld\n",ans);
return 0;
}
luogu P2154 [SDOI2009]虔诚的墓主人的更多相关文章
- bzoj1227 P2154 [SDOI2009]虔诚的墓主人
P2154 [SDOI2009]虔诚的墓主人 组合数学+离散化+树状数组 先看题,结合样例分析,易得每个墓地的虔诚度=C(正左几棵,k)*C(正右几棵,k)*C(正上几棵,k)*C(正下几棵,k),如 ...
- P2154 [SDOI2009]虔诚的墓主人 树状数组
https://www.luogu.org/problemnew/show/P2154 题意 在一个坐标系中,有w(1e5)个点,这个图中空点的权值是正上,正下,正左,正右各取k个的排列组合情况.计算 ...
- [洛谷P2154] SDOI2009 虔诚的墓主人
问题描述 小W是一片新造公墓的管理人.公墓可以看成一块N×M的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地. 当地的居民都是非常虔诚的基督徒,他们愿意提前为自己找一块合适墓地. ...
- Luogu 2154 [SDOI2009]虔诚的墓主人
弄了很久,状态很烂…… 首先发现可用的点一共只有$1e5$个,所以可以离散化坐标来方便计算. 发现对于一个空格,设它的上.下.左.右分别有$u, d, l, r$个点,它产生的贡献是$\binom{u ...
- P2154 [SDOI2009]虔诚的墓主人
略有一点点思维的题. 首先,如果一个点上,下,左,右分别有\(a,b,c,d\)棵树,那这个点的十字架方案为\(C_{a}^{k}C_{b}^{k}C_{c}^{k}C_{d}^{k}\). 按x坐标 ...
- BZOJ 1227: [SDOI2009]虔诚的墓主人
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 1078 Solved: 510[Submit][Stat ...
- Bzoj 1227: [SDOI2009]虔诚的墓主人 树状数组,离散化,组合数学
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 895 Solved: 422[Submit][Statu ...
- bzoj1227 [SDOI2009]虔诚的墓主人(组合公式+离散化+线段树)
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 803 Solved: 372[Submit][Statu ...
- 1227: [SDOI2009]虔诚的墓主人
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 1083 Solved: 514[Submit][Stat ...
随机推荐
- 阿里云服务器ECS装好宝塔 但访问不了面板的解决方法
(SSH) (phpmyadmin) 如果你进入面板里修改了面板端口或FTP端口,记得要在安全组和面板防火墙放行相应端口
- java实现一个简单的验证码生成器
最近看了网上很多大佬们写的验证码生成,寻思着自己也写一个,话不多说,代码如下: import java.awt.BasicStroke; import java.awt.Color; import j ...
- GitHub:Facebook
ylbtech-GitHub:Facebook 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. https://github.com/facebook 2. ...
- 搭建Java服务器,并且实现远程安全访问linux系统
1.通过ssh实现安全远程访问linux系统 ssh :secure shell 加密: 1. 对称加密 (加密密钥与解密密钥相同) des ...
- WPF使用cefsharp 下载地址
源码下载: https://github.com/cefsharp/CefSharp dll类库包下载nuget: https://www.nuget.org/packages/CefSharp.Wp ...
- 利用Calendar类判断是平年还是闰年
package com.bgs.Math; import java.util.Calendar; import java.util.Scanner; /*###14.21_常见对象(如何获取任意年份是 ...
- 12 mysql性能抖动
12 mysql性能抖动 sql语句为什么变”慢”了 在介绍WAL机制时,innodb在处理更新语句的时候,只做了写日志这一个磁盘操作,就是redo log,在更新内存写完redo log之后,就返回 ...
- mybatisplus EntityWrapper 常用方法
1. #WHERE (issue_type = ?) AND (status = ? OR status = ? OR status = ?) EntityWrapper wrapper=new En ...
- 在Linux中使用minikube
Minikebe Minikube是一个轻量级Kubernetes实现,它在本地机器上创建一个VM,并部署一个只包含一个节点的简单集群. Minikube使用Docker机器来管理Kubernetes ...
- 【.NET】无法加载协定为“ServiceReference1.ReportWsSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
前言 引用websevice时,有时会出现如下错误: 异常详细信息: System.InvalidOperationException: 无法加载协定为“ServiceReference1.Repor ...