lg9035题解
考虑枚举\(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题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- rabbitmq监控与运维
一.系统架构 二.监控 本指南涵盖了使用两个流行工具进行 RabbitMQ 监控: Prometheus,一个监控工具包:和Grafana,一个指标可视化系统.这些工具共同构成了一个强大的工具包,用于 ...
- 【易语言】exui超级列表框使用方法
优秀例程1 黑鸟 https://jiucaiwl.lanzoum.com/iLq8B0oswkuf
- Java密码加密的两种保存方式
密码加密的两种方式(md5和base64) 常见的加密方式有盐值,md5和jdk自带的base64,这里我记录的是base64如何使用,以及破解的方式,话不多说,直接贴代码! 其实md5和加盐值都差不 ...
- LambdaQueryWrapper 的条件构造器方法对应Sql
setSqlSelect SELECT 查询字段 where WHERE 语句,拼接 + WHERE 条件 and AND 语句,拼接 + AND 字段=值 andNew AND 语句,拼接 + AN ...
- 【QT】创建动态链接库及使用
创建动态链接库 创建一个项目 选择library的C++库,下一步. 选择共享库,输入动态库的名字,选择创建路径,下一步 选择编译环境,下一步 选择QTCore模块,该模块提供核心的非图形用户接口功能 ...
- [2015年NOIP提高组] 跳石头
一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 <spa ...
- Dockerfile启动镜像报错 invalid reference format: repository name must be lowercase
具体报错信息如下: "user-0.0.1-SNAPSHOT.jar:latest" for "-t, --tag" flag: invalid referen ...
- Linux 安装jdk教程
https://www.cnblogs.com/mabiao008/p/12059069.html
- unity简单物理系统
目录 技术概述 技术详述 2D物理系统组件 刚体 碰撞器 物理材质 碰撞检测函数 在主角中的使用 移动 长跳跃与短跳跃 二段跳 攀爬(蹬墙跳) 技术使用中遇到的问题和解决过程 技术概述 物理系统,就是 ...
- 基于Vue项目+django写一个登录的页面
基于Vue项目+django写一个登录的页面 前端 借用了一下vue项目模板的AboutView.vue 页面组件 <template> <div class="about ...