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 ...
随机推荐
- (三)HTML中的列表标签、框架集及表单标签
一.HTML的列表标签 在网页中,经常可以看到,有的内容排列如同word里面的项目编号,这就是HTML的无序排列和有序排列起到的作用.. HTML之无序排列:<ul></ul> ...
- XML再深入
XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 使用前缀来避免命名冲突 在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免. 该 XML 携带某个 HTML 表格和某件家具的信 ...
- 洛谷P1730 最小密度路径(floyd)
题意 题目链接 Sol zz floyd. 很显然的一个dp方程\(f[i][j][k][l]\)表示从\(i\)到\(j\)经过了\(k\)条边的最小权值 可以证明最优路径的长度一定\(\leqsl ...
- 【基础笔记】tomcat安装后运行出现出现问题(the JRE_HOME environment variable is not defined correctly This environment variabl)
之前装好tomcat后正常运行 后来重装系统后,又一次配置环境时却报错. 在网上查找了两篇文章. https://blog.csdn.net/haleyliu123/article/details/ ...
- IOS微信浏览器点击事件不起作用问题
问题: $(document).on("click",".btn",function(){alert("1")}); 在微信浏览器上点击不起 ...
- 网络威胁防护,Azure 靠的是它?
在当今数字化转型的浪潮中,越来越多的企业希望转型于云.使用云能帮助企业提高工作效率.降低 IT 成本.增强竞争优势,有效推动企业的业务发展.但是,在向云迁移的过程中,基于云的数据中心更有可能被攻击,所 ...
- Consul 配置ACLs
比如consul.exe 在D:\consul来个json配置文件在 D:\consul\config.jsonjson 格式{ "acl_datacenter": "d ...
- pl/sql中的一种链接数据库方式
今天看开发人员如此连接数据库:
- rac数据库默认sql tuning advisor,导致大量library cache lock
rac数据库默认sql tuning advisor,导致大量library cache lock 问题现象:客户反映周六周日固定十点钟,一个程序会特别慢(大概10分钟),平时1到2秒.查看当时的日志 ...
- 科技巨头之微软-Microsoft
提起微软Microsoft,我想应该是无人不知无人不晓.Windows操作系统,Office办公软件,是我们日常经常用到的工具.而微软的创始人正是前世界首富比尔盖茨. 1997年,我刚上初中.当时学校 ...