题目描述

  给你n,k,a1…ann,k,a_1\ldots a_n,设

ansn=∑i=1n(∑j=ins(j))k

ans_n=\sum_{i=1}^n{(\sum_{j=i}^ns(j))}^k\\
  求 ans1…ansnans_1\ldots ans_n

  对109+7{10}^9+7取模

  n≤50000,k≤100n\leq 50000,k\leq 100

题解

  大水题

  这题就是在搞笑

  题解的做法是O(nklogk)O(nk\log k)的

  随便推推就能推出O(nk)O(nk)的做法

ansn=∑i=1n(∑j=ins(j))k=∑i=1n(sn−si−1)k=∑i=1n∑j=0ksnjsi−1k−j(−1)k−j(kj)=∑i=0ksni(−1)k−i(ki)∑j=1nsj−1k−i

\begin{align} ans_n&=\sum_{i=1}^n{(\sum_{j=i}^ns(j))}^k\\ &=\sum_{i=1}^n{(s_n-s_{i-1})}^k\\ &=\sum_{i=1}^n\sum_{j=0}^k{s_n}^{j}{s_{i-1}}^{k-j}{(-1)}^{k-j}\binom{k}{j}\\ &=\sum_{i=0}^k{s_n}^i{(-1)}^{k-i}\binom{k}{i}\sum_{j=1}^n{s_{j-1}}^{k-i} \end{align}

  维护最后那项即可。

  时间复杂度:O(nk)O(nk)

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll p=1000000007;
ll c[110][110];
ll a[50010];
ll s[50010];
ll b[50010];
int main()
{
#ifndef ONLINE_JUDGEfreopen("xsy2032.in","r",stdin);freopen("xsy2032.out","w",stdout);
#endifint n,k;scanf("%d%d",&n,&k);int i,j;memset(c,0,sizeof c);for(i=0;i<=k;i++){c[i][0]=1;for(j=1;j<=i;j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%p;}b[0]=1;s[0]=1;for(i=1;i<=n;i++){scanf("%lld",&a[i]);a[i]=(a[i]+a[i-1])%p;for(j=1;j<=k;j++)b[j]=b[j-1]*a[i]%p;ll ans=0;for(j=0;j<=k;j++)ans=(ans+b[j]*s[k-j]%p*c[k][j]%p*((k-j)&1?-1:1))%p;ans=(ans+p)%p;printf("%lld\n",ans);for(j=0;j<=k;j++)s[j]=(s[j]+b[j])%p;}return 0;
}

【XSY2032】简单粗暴的题目 组合数相关推荐

  1. 【校内模拟】简单粗暴的题目(二项式展开)

    简要题意: 给一个长为 nnn 的数列 aaa 和一个正整数 kkk,对于 i=1,2-,ni=1,2\dots,ni=1,2-,n,求: ansi=∑j=1i(∑l=jial)kans_i=\sum ...

  2. 简单粗暴的抓取糗百的段子——1

    首先我们用到的软件是工具是pycharm,py3.6版本,工具包是 requests 和 bs4,没下载的抓紧时间哈~~~ 接着看下效果图吧~ 空行没有消除,跟题目很相仿~~~简单粗暴,这里只说方法 ...

  3. 简单粗暴上手TensorFlow 2.0,北大学霸力作,必须人手一册!

    (图片付费下载自视觉中国) 整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读] TensorFlow 2.0 于近期正式发布后,立即受到学术界与科研界的广泛关注与好评.此前 ...

  4. 谷歌简单粗暴“复制-粘贴”数据增广,刷新COCO目标检测与实例分割新高度

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 近日,谷歌.UC伯克利与康奈尔大学的研究人员公布了一篇论文 Sim ...

  5. 一起学spring--依赖注入---简单粗暴的例子展示

    欢迎进入<一起学spring>系列博文第二篇, 我们接着上一篇博文'我的第一个spring程序--简单粗暴易懂',我们讲到spring的依赖注入中的设值注入,所谓的设值注入,就是让spri ...

  6. java简单的面试题目_简单的面试题目,大跌眼镜的结果

    原标题:简单的面试题目,大跌眼镜的结果 大老远跑来面试,总不能聊几句就走人吧.碍于情面,起码也得聊上十几分钟.招聘高峰这种情况尤甚,浪费你我时间.所以越来越多的组织会采用电话面试的方式,进行初步筛选. ...

  7. 使用python用什么软件-Python读写Excel表格,就是这么简单粗暴又好用

    Python读写Excel表格,就是这么简单粗暴又好用 2019-04-18 13:45:31 11点赞 107收藏 1评论 最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开 ...

  8. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  9. 简单粗暴方便好用树莓派FTP远程文件服务器

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 鸣谢 (按照DLGG惯例先鸣谢)感谢yoyojacky漂移菌的技术支持感谢igyang ...

最新文章

  1. 股市币市:数据分析与交易所公告(20190225)
  2. 七周七并发之线程与锁
  3. 智能建筑进入新的十年
  4. python网络框架生产环境_配置Django框架为生产环境的注意事项(DEBUG=False)
  5. LeetCode 61. Rotate List
  6. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
  7. AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
  8. iOS开发 Xcode10报错缺少libstdc++.6.0.9.tbd
  9. android提示用户去开启gps,在不使用GPS或互联网的情况下获取Android中用户的当前位置...
  10. kafka与mysql持久化_漫游Kafka设计篇之数据持久化
  11. Message from debugger: Terminated due to signal 6
  12. JAVA提取纯文本_从常见文档中提取纯文本内容 | IT人生录
  13. 图像算法---白平衡AWB
  14. 双击打开Excel2016文件后无法直接显示文件内容的解决办法
  15. 小米刷机OTA、 Recovery、 FASTBOOT三种方法直接的区别和联系
  16. 第五章(第四节)论路由器重置
  17. java 虚拟机(2)
  18. Retrofit2网络框架的使用
  19. 2021-09-12 Autodesk inventor 技巧整理
  20. android gilde生命周期管理,Glide原理之Activity、Fragment生命周期监听(三)

热门文章

  1. android 免费云测平台,免费移动App自动化云测试软件推荐-Testin(云测)
  2. 程序员的成长之路(一)
  3. 动态规划:青蛙跳台阶和翻译字符串
  4. Ubuntu突然网卡不见...
  5. CIO如何管理企业业务流程
  6. 2014年5月26日
  7. 连接SQL Server 数据库
  8. 一个绿色版本的LAMP包. (快速构建linux下的php开发环境)
  9. Cesium实战专栏19.动态水面效果
  10. 流程、流程?流程...