20181009noip HZ EZ两校联考sum(莫队,组合数学)
题面戳这里
思路:
noip考莫队???!!!
考场上死活没往这方面想啊!!!数据分治忘写endl50pts滚粗了
这里每个询问都有n,m两个参数
我们可以把它看做常规莫队中的l和r
然后利用组合数的可递推性质就好了
相信改变m大家都会写,n呢?
看图:

我们发现,$S_n^m = S_{n-1}^m \times 2 - C_n^{m+1} + C_{n-1}^{m+1}$
(因为杨辉三角的性质)
所以n也可以递推
套个莫队就好了
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#define rii register int i
#define rij register int j
#define int long long
const int p=1e9+;
using namespace std;
struct que{
int n,m,ans,bh;
}x[];
int ny[],jc[],jcny[],q,sy[],nn,nm,ans;
void qny()
{
ny[]=;
ny[]=;
for(rii=;i<=;i++)
{
ny[i]=(p-p/i)*ny[p%i]%p;
}
}
void jic()
{
jcny[]=;
jc[]=;
jcny[]=;
for(rii=;i<=;i++)
{
jc[i]=jc[i-]*i;
jc[i]%=p;
jcny[i]=jcny[i-]*ny[i];
jcny[i]%=p;
}
}
void ycl()
{
qny();
jic();
}
bool cmp1(que lk,que kl)
{
if(sy[lk.n]==sy[kl.n])
{
return lk.m<kl.m;
}
return lk.n<kl.n;
}
bool cmp2(que lk,que kl)
{
return lk.bh<kl.bh;
}
int c(int n,int m)
{
int kkk=jcny[m];
kkk*=jc[n];
kkk%=p;
kkk*=jcny[n-m];
kkk%=p;
return kkk;
}
void cn(int zl)
{
if(zl==)
{
ans*=;
ans-=c(nn+,nm+);
ans+=c(nn,nm+);
ans+=p;
ans%=p;
}
if(zl==-)
{
ans+=c(nn,nm+);
ans-=c(nn-,nm+);
ans+=p;
ans%=p;
ans*=ny[];
ans%=p;
}
}
void cm(int zl)
{
if(zl==)
{
ans+=c(nn,nm+);
}
else
{
ans-=c(nn,nm);
ans+=p;
}
ans%=p;
}
signed main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
ycl();
scanf("%lld",&q);
scanf("%lld",&q);
int len=;
for(rii=;i<=;i++)
{
sy[i]=i/len+;
}
for(rii=;i<=q;i++)
{
scanf("%lld%lld",&x[i].n,&x[i].m);
x[i].bh=i;
}
sort(x+,x+q+,cmp1);
nn=,nm=,ans=;
for(rii=;i<=q;i++)
{
if(x[i].m<nn)
{
while(nm>x[i].m)
{
cm(-);
nm--;
}
while(nm<x[i].m)
{
cm();
nm++;
}
while(nn<x[i].n)
{
cn();
nn++;
}
while(nn>x[i].n)
{
cn(-);
nn--;
}
}
while(nn<x[i].n)
{
cn();
nn++;
}
while(nn>x[i].n)
{
cn(-);
nn--;
}
while(nm>x[i].m)
{
cm(-);
nm--;
}
while(nm<x[i].m)
{
cm();
nm++;
}
x[i].ans=ans;
}
sort(x+,x+q+,cmp2);
for(rii=;i<=q;i++)
{
printf("%lld\n",x[i].ans);
}
}
20181009noip HZ EZ两校联考sum(莫队,组合数学)的更多相关文章
- 20181009noip HZ EZ 两校联考trade(优先队列,贪心)
题面戳这里 思路: 裸的,贪心... 考场上写了一个数据分治(70ptsDP,30pts线段树优化贪心,GG了后30分) 这道题其实很简单的 我们看图: 我们在A时刻买一个东西,在B时刻卖出去,我们可 ...
- 【赛时总结】NOIP2018-三校联考1024
◇NOIP三校联考-1024◇ 发现以前的博客写得似乎都很水……基本上都没什么阅读量QwQ 决定改过自新╰( ̄ω ̄o) 就从这篇博客开始吧~ 现场考得无地自容,看到题解才发现一些东西……(我第三题还没 ...
- [多校联考2019(Round 5 T3)]青青草原的表彰大会(dp+组合数学)
[多校联考2019(Round 5)]青青草原的表彰大会(dp+组合数学) 题面 青青草原上有n 只羊,他们聚集在包包大人的家里,举办一年一度的表彰大会,在这次的表彰大会中,包包大人让羊们按自己的贡献 ...
- 三校联考 Day3
三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...
- [2019多校联考(Round 6 T3)]脱单计划 (费用流)
[2019多校联考(Round 6 T3)]脱单计划 (费用流) 题面 你是一家相亲机构的策划总监,在一次相亲活动中,有 n 个小区的若干男士和 n个小区的若干女士报名了这次活动,你需要将这些参与者两 ...
- [多校联考2019(Round 5 T1)] [ATCoder3912]Xor Tree(状压dp)
[多校联考2019(Round 5)] [ATCoder3912]Xor Tree(状压dp) 题面 给出一棵n个点的树,每条边有边权v,每次操作选中两个点,将这两个点之间的路径上的边权全部异或某个值 ...
- [多校联考2019(Round 5 T2)]蓝精灵的请求(二分图染色+背包)
[多校联考2019(Round 5)]蓝精灵的请求(二分图染色+背包) 题面 在山的那边海的那边住着 n 个蓝精灵,这 n 个蓝精灵之间有 m 对好友关系,现在蓝精灵们想要玩一个团队竞技游戏,需要分为 ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底
[五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...
随机推荐
- python函数名称空间与作用域、闭包
一.命名空间概念 1.命名空间(name space) 名称空间是存放名字的地方. 若变量x=1,1存放在内存中,命名空间是存放名字x.x与1绑定关系的地方. 2.名称空间加载顺序 python te ...
- 转载《学习HTML5 canvas遇到的问题》
学习HTML5 canvas遇到的问题 1. 非零环绕原则(nonzZero rule) 非零环绕原则是canvas在进行填充的时候是否要进行填充的判断依据. 在判断填充的区域拉一条线出来,拉到图形的 ...
- URL工具类
UrlUtils = { /** * 判断url是否存在(存在跨域问题) * @param {String} url */ isTrueUrl: function(_url) { result = f ...
- Instance Segmentation入门总结
前一阵子好忙啊,好久没更新了.最近正好挖了新坑,来更新下.因为之前是做检测的,而目前课题顺道偏到了instance segmentation,这篇文章简单梳理一下从检测.分割结果到instance s ...
- iDempiere 使用指南 windows下eclipse开发环境配置及打包下载
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- 并发包java.util.concurrent.locks.Lock
** * * @描述: Lock比传统线程模型中的synchronized方式更加面向对象.与生活中的锁类似,锁本身也应该是一个对象,两个线程执行的代码片段要实现同步互排的效果 * 它们必须用同一个L ...
- 序列化Serializable
public interface Serializable 类的序列化由实现java.io.Serializable接口的类启用. 不实现此接口的类将不会使任何状态序列化或反序列化. 可序列化类的所有 ...
- win7 下vs2008试用版破解
用过微软的开发套件Visual Studio 2008,如果用的是试用版本,超过90天,就会过期,出现下面这张图片显示的 下面介绍破解的步骤: 1.首先打开控制面板——然后找到卸载或更改程序——然后找 ...
- May 19th 2017 Week 20th Friday
Good luck is another name for tenacity of purpose. 好运不过是坚持不懈的结果. To some extent, I don't agree with ...
- SSD 从形式到实质之改变
SSD 从形式到实质之改变 作者:廖恒 SSD的物理尺寸之混战正在进行其中. 数据中心的硬件架构师由于要规划下一代server的机械设计.还要制定JBOD的设计规范,想必面临不少困 ...