题面戳这里

思路:

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也可以递推

套个莫队就好了

代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #define rii register int i
  5. #define rij register int j
  6. #define int long long
  7. const int p=1e9+;
  8. using namespace std;
  9. struct que{
  10. int n,m,ans,bh;
  11. }x[];
  12. int ny[],jc[],jcny[],q,sy[],nn,nm,ans;
  13. void qny()
  14. {
  15. ny[]=;
  16. ny[]=;
  17. for(rii=;i<=;i++)
  18. {
  19. ny[i]=(p-p/i)*ny[p%i]%p;
  20. }
  21. }
  22. void jic()
  23. {
  24. jcny[]=;
  25. jc[]=;
  26. jcny[]=;
  27. for(rii=;i<=;i++)
  28. {
  29. jc[i]=jc[i-]*i;
  30. jc[i]%=p;
  31. jcny[i]=jcny[i-]*ny[i];
  32. jcny[i]%=p;
  33. }
  34. }
  35. void ycl()
  36. {
  37. qny();
  38. jic();
  39. }
  40. bool cmp1(que lk,que kl)
  41. {
  42. if(sy[lk.n]==sy[kl.n])
  43. {
  44. return lk.m<kl.m;
  45. }
  46. return lk.n<kl.n;
  47. }
  48. bool cmp2(que lk,que kl)
  49. {
  50. return lk.bh<kl.bh;
  51. }
  52. int c(int n,int m)
  53. {
  54. int kkk=jcny[m];
  55. kkk*=jc[n];
  56. kkk%=p;
  57. kkk*=jcny[n-m];
  58. kkk%=p;
  59. return kkk;
  60. }
  61. void cn(int zl)
  62. {
  63. if(zl==)
  64. {
  65. ans*=;
  66. ans-=c(nn+,nm+);
  67. ans+=c(nn,nm+);
  68. ans+=p;
  69. ans%=p;
  70. }
  71. if(zl==-)
  72. {
  73. ans+=c(nn,nm+);
  74. ans-=c(nn-,nm+);
  75. ans+=p;
  76. ans%=p;
  77. ans*=ny[];
  78. ans%=p;
  79. }
  80. }
  81. void cm(int zl)
  82. {
  83. if(zl==)
  84. {
  85. ans+=c(nn,nm+);
  86. }
  87. else
  88. {
  89. ans-=c(nn,nm);
  90. ans+=p;
  91. }
  92. ans%=p;
  93. }
  94. signed main()
  95. {
  96. freopen("sum.in","r",stdin);
  97. freopen("sum.out","w",stdout);
  98. ycl();
  99. scanf("%lld",&q);
  100. scanf("%lld",&q);
  101. int len=;
  102. for(rii=;i<=;i++)
  103. {
  104. sy[i]=i/len+;
  105. }
  106. for(rii=;i<=q;i++)
  107. {
  108. scanf("%lld%lld",&x[i].n,&x[i].m);
  109. x[i].bh=i;
  110. }
  111. sort(x+,x+q+,cmp1);
  112. nn=,nm=,ans=;
  113. for(rii=;i<=q;i++)
  114. {
  115. if(x[i].m<nn)
  116. {
  117. while(nm>x[i].m)
  118. {
  119. cm(-);
  120. nm--;
  121. }
  122. while(nm<x[i].m)
  123. {
  124. cm();
  125. nm++;
  126. }
  127. while(nn<x[i].n)
  128. {
  129. cn();
  130. nn++;
  131. }
  132. while(nn>x[i].n)
  133. {
  134. cn(-);
  135. nn--;
  136. }
  137. }
  138. while(nn<x[i].n)
  139. {
  140. cn();
  141. nn++;
  142. }
  143. while(nn>x[i].n)
  144. {
  145. cn(-);
  146. nn--;
  147. }
  148. while(nm>x[i].m)
  149. {
  150. cm(-);
  151. nm--;
  152. }
  153. while(nm<x[i].m)
  154. {
  155. cm();
  156. nm++;
  157. }
  158. x[i].ans=ans;
  159. }
  160. sort(x+,x+q+,cmp2);
  161. for(rii=;i<=q;i++)
  162. {
  163. printf("%lld\n",x[i].ans);
  164. }
  165. }

20181009noip HZ EZ两校联考sum(莫队,组合数学)的更多相关文章

  1. 20181009noip HZ EZ 两校联考trade(优先队列,贪心)

    题面戳这里 思路: 裸的,贪心... 考场上写了一个数据分治(70ptsDP,30pts线段树优化贪心,GG了后30分) 这道题其实很简单的 我们看图: 我们在A时刻买一个东西,在B时刻卖出去,我们可 ...

  2. 【赛时总结】NOIP2018-三校联考1024

    ◇NOIP三校联考-1024◇ 发现以前的博客写得似乎都很水……基本上都没什么阅读量QwQ 决定改过自新╰( ̄ω ̄o) 就从这篇博客开始吧~ 现场考得无地自容,看到题解才发现一些东西……(我第三题还没 ...

  3. [多校联考2019(Round 5 T3)]青青草原的表彰大会(dp+组合数学)

    [多校联考2019(Round 5)]青青草原的表彰大会(dp+组合数学) 题面 青青草原上有n 只羊,他们聚集在包包大人的家里,举办一年一度的表彰大会,在这次的表彰大会中,包包大人让羊们按自己的贡献 ...

  4. 三校联考 Day3

    三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...

  5. [2019多校联考(Round 6 T3)]脱单计划 (费用流)

    [2019多校联考(Round 6 T3)]脱单计划 (费用流) 题面 你是一家相亲机构的策划总监,在一次相亲活动中,有 n 个小区的若干男士和 n个小区的若干女士报名了这次活动,你需要将这些参与者两 ...

  6. [多校联考2019(Round 5 T1)] [ATCoder3912]Xor Tree(状压dp)

    [多校联考2019(Round 5)] [ATCoder3912]Xor Tree(状压dp) 题面 给出一棵n个点的树,每条边有边权v,每次操作选中两个点,将这两个点之间的路径上的边权全部异或某个值 ...

  7. [多校联考2019(Round 5 T2)]蓝精灵的请求(二分图染色+背包)

    [多校联考2019(Round 5)]蓝精灵的请求(二分图染色+背包) 题面 在山的那边海的那边住着 n 个蓝精灵,这 n 个蓝精灵之间有 m 对好友关系,现在蓝精灵们想要玩一个团队竞技游戏,需要分为 ...

  8. 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你

    [五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...

  9. 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底

    [五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...

随机推荐

  1. (三)HTML中的列表标签、框架集及表单标签

    一.HTML的列表标签 在网页中,经常可以看到,有的内容排列如同word里面的项目编号,这就是HTML的无序排列和有序排列起到的作用.. HTML之无序排列:<ul></ul> ...

  2. XML再深入

    XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 使用前缀来避免命名冲突 在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免. 该 XML 携带某个 HTML 表格和某件家具的信 ...

  3. 洛谷P1730 最小密度路径(floyd)

    题意 题目链接 Sol zz floyd. 很显然的一个dp方程\(f[i][j][k][l]\)表示从\(i\)到\(j\)经过了\(k\)条边的最小权值 可以证明最优路径的长度一定\(\leqsl ...

  4. 【基础笔记】tomcat安装后运行出现出现问题(the JRE_HOME environment variable is not defined correctly This environment variabl)

    之前装好tomcat后正常运行  后来重装系统后,又一次配置环境时却报错. 在网上查找了两篇文章. https://blog.csdn.net/haleyliu123/article/details/ ...

  5. IOS微信浏览器点击事件不起作用问题

    问题: $(document).on("click",".btn",function(){alert("1")}); 在微信浏览器上点击不起 ...

  6. 网络威胁防护,Azure 靠的是它?

    在当今数字化转型的浪潮中,越来越多的企业希望转型于云.使用云能帮助企业提高工作效率.降低 IT 成本.增强竞争优势,有效推动企业的业务发展.但是,在向云迁移的过程中,基于云的数据中心更有可能被攻击,所 ...

  7. Consul 配置ACLs

    比如consul.exe 在D:\consul来个json配置文件在 D:\consul\config.jsonjson 格式{ "acl_datacenter": "d ...

  8. pl/sql中的一种链接数据库方式

    今天看开发人员如此连接数据库:

  9. rac数据库默认sql tuning advisor,导致大量library cache lock

    rac数据库默认sql tuning advisor,导致大量library cache lock 问题现象:客户反映周六周日固定十点钟,一个程序会特别慢(大概10分钟),平时1到2秒.查看当时的日志 ...

  10. 科技巨头之微软-Microsoft

    提起微软Microsoft,我想应该是无人不知无人不晓.Windows操作系统,Office办公软件,是我们日常经常用到的工具.而微软的创始人正是前世界首富比尔盖茨. 1997年,我刚上初中.当时学校 ...