考虑枚举\(a_{n-1}=l\),根据题意\(l\leq a_n\leq k+1-l\),这说明\(a_n\)有\(k+1-2l\)种取值。

令\(b_i=a_i-a_{i-1}\),则\(b_1\geq 1\),\(b_i\geq 0(i>1)\),\(b_1+...+b_{n-1}=l\)

让\(b_{2...n-1}\)都加上\(1\),得到\(b_1+(b_2+1)+...+(b_{n-1}+1)=l+n-2\),\(b_1,b_2+1....b_{n-1}+1\)都>1。使用插板法计算方案为\(C_{l+n-3}^{n-2}\)

当\(l=0\)方案数为\(k+2\),\(l>0\)方案数为\((k+1-2l)C_{l+n-3}^{n-2}\)

我们要计算\(k+2+\sum_{l=1}^{\lfloor \frac{k+1}{2}\rfloor}(k+1-2l)C_{l+n-3}^{n-2}\),时间复杂度\(O(k)\)

考虑优化计算\(\sum_{l=1}^{\lfloor \frac{k+1}{2}\rfloor}(k+1-2l)C_{l+n-3}^{n-2}\),等于计算\((k+1)\sum_{l=1}^{\lfloor \frac{k+1}{2}\rfloor}C_{l+n-3}^{n-2}\)与\(\sum_{l=1}^{\lfloor \frac{k+1}{2}\rfloor}(-2l)C_{l+n-3}^{n-2}\)的和

第一部分事实上等于要求\(\sum_{i=0}^nC_{k+i}^{k}\),这是个经典问题,累加可以得到\(C_{k+n+1}^{k+1}\)。令\(F(k,n)=\sum_{i=0}^nC_{k+i}^{k}=C_{k+n+1}^{k+1}\)

第二部分等于要求\(\sum_{i=0}^nC_{k+i}^{k}(i+1)\),等于计算\((n+2)\sum_{i=0}^nC_{k+i}^k-\sum_{i=0}^nC_{k+i}^k(n+1-i)\),等于计算\((n+2)F(k,n)-F(k,0)-...-F(k,n)=(n+2)F(k,n)-(C_{k+1}^{k+1}+C_{k+2}^{k+1}+....+C_{k+n+1}^{k+1})=(l+2)F(k,n)-F(k+1,n)\),预处理阶乘后可以\(O(1)\)计算。

lg9035题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. linux 清空catalina.out日志 不需要重启tomcat(五种方法)

    linux 清空catalina.out日志 不需要重启tomcat 1.重定向方法清空文件   [root@localhost logs]# du -h catalina.out  查看文件大小17 ...

  2. jekins+svn

    1.jekins安装可以看jekins+shell随笔. 2.安装svn. yum -y install subversion 3.配置相关文件 mkdir   家目录 cd 到家目录修改conf下三 ...

  3. centos6.5最小安装不能联网

    因为个人需要,在一台笔记本安装centos6.5最小安装时遇到了无法有线联网,后面经过了几个小时的处理 总算理清楚并解决了这个问题.亲测有效而不是转载! 如上图所示 处理这个问题颇有感受,在网上找了很 ...

  4. 微信小程序隐私指引完整填写范本(开发者收集你选中的照片或视频信息,用于?)

    为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称.头像.为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息.开发者收集你的地址,用于获取位置信息.开发者收集你的发票信息,用于维护 ...

  5. kali对安卓的渗透(内网穿透)

    前言:随着移动端的增加,安卓占比巨大,人们对手机的安全防范意识薄弱,手机为了人们更加的方便,缺乏防护软件,甚至好多木马不需要做免杀. 现在我来做安卓的渗透,不需要在内网也能进行,实现了内网穿透.(有公 ...

  6. 《Makefile中变量的高级用法:变量的替换引用、变量的嵌套使用》

    高级使用方法有两种:第一种是变量的替换引用,第二种是变量的嵌套引用. 第一种用法经常用到,第二种用法我们很少使用.我们应该尽量避免使用变量的嵌套引用,在必须使用时,嵌套的层数越少越好.因为这种方法表达 ...

  7. argocd

    argocd Argo CD - Declarative GitOps CD for Kubernetes (argo-cd.readthedocs.io) What Is Argo CD Argo ...

  8. 记录POI导入时单元格下拉框两种实现方式(excel数据有效性)

    如果下拉选项字符少于225 使用方式1 public static HSSFSheet setHSSFValidation(HSSFSheet sheet, String[] textlist, in ...

  9. springcloud(二) - 服务调用Feign&openFeign

    功能介绍:动态代理的方式,简化请求其他服务的开发成本,更好得对请求地址组装.接受返回信息.返回参数解析等  Feign和OpenFeign区别: OpenFeign实现了Feign的基础功能,同时支持 ...

  10. windows下MinGW64编译环境设置

    windows下MinGW64编译环境设置 1. MinGW 介绍 MinGW 的全称是:Minimalist GNU on Windows .是将经典的开源 C语言 编译器 GCC 移植到了 Win ...