题面

传送门

题解

orz zzk

考虑这东西的组合意义

(图片来自zzk)

\(a_i\)这个元素对\(k\)阶前缀和的第\(j\)个元素\(s_{k,j}\)的贡献就等于从\((0,i)\)走到\((j,k)\)的方案数(最开始的一次必须往下走,所以实际上是从\((1,i)\)走到\((j,k)\)的方案数)

那么\(s_{j,k}=\sum_{i=1}^ja_i{j-i+k-1\choose j-i}\)

直接\(O(n^2)\)递推就行了

//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=2005,P=1e9+7;
inline int add(R int x,R int y){return x+y>=P?x+y-P:x+y;}
inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
int inv[N],c[N],a[N],ans[N],n,k;
void init(){inv[0]=inv[1]=1;fp(i,2,n)inv[i]=mul(P-P/i,inv[P%i]);c[0]=1;fp(i,1,n)c[i]=1ll*c[i-1]*inv[i]%P*(i+k-1)%P;
}
int main(){
//  freopen("testdata.in","r",stdin);n=read(),k=read();fp(i,1,n)a[i]=read();if(!k){fp(i,1,n)printf("%d%c",a[i]," \n"[i==n]);return 0;}init();fp(i,1,n)fp(j,i,n)ans[j]=add(ans[j],mul(a[i],c[j-i]));fp(i,1,n)printf("%d%c",ans[i]," \n"[i==n]);return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10582503.html

CF223C【Partial Sums】(组合数学+乱搞)相关推荐

  1. CF思维联系–CodeForces - 223 C Partial Sums(组合数学的先线性递推)

    ACM思维题训练集合 You've got an array a, consisting of n integers. The array elements are indexed from 1 to ...

  2. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

  3. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  4. BZOJ-1800 飞行棋 数学+乱搞

    这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...

  5. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 367  Solved: 159 [Submit][Status ...

  6. Partial Sums ZOJ - 1569

    Given a series of n numbers a1, a2, -, an, the partial sum of the numbers is defined as the sum of a ...

  7. BZOJ4401:块的计数(乱搞)

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构--块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  8. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

  9. 【uoj#209】[UER #6]票数统计 组合数+乱搞

    题目描述 一个长度为 $n$ 的序列,每个位置为 $0$ 或 $1$ 两种.现在给出 $m$ 个限制条件,第 $i$ 个限制条件给出 $x_i$ .$y_i$ ,要求至少满足以下两个条件之一: 序列的 ...

最新文章

  1. 皮一皮:师太请自重...
  2. Tomcat 的 Server 文件配置详解
  3. bytebuf池_图文分析ByteBuf是什么
  4. 获取数据库时间相差8小时_JAVA 程序展示时间与数据表保存的时间相差了13个小时...
  5. OpenGL(二)——OpenGL图形绘制
  6. 金蝶eas怎么引出凭证_金蝶EAS该如何导出凭证
  7. 高仿QQ顶部控件之IOS SegmentView
  8. 单片机重要组成部分还有什么,引脚封装分布知识讲解(二)
  9. UDS协议(车辆控制单元诊断系统开发架构及DID读取数据流程)
  10. 信捷plc485通信上位机_常用通信接口汇总
  11. android tabbar框架,Android 自定义tabbar 用viewPage实现
  12. 移动端H5页面中加载的图片,在chrome和安卓手机中显示正常,在iphone和safari浏览器中个别图片显示问号的问题处理
  13. 谷歌:AI系统需要“自我怀疑”能力,方能作出更好的决定!
  14. 你用过猿如意吗?猿如意可以使用ChatGPT哦,这里详细介绍了猿如意的功能,为什么我建议你使用猿如意,来看看吧
  15. Algorithm之PrA:PrA之IP整数规划(包括0-1整数规划)算法经典案例剖析+Matlab编程实现
  16. 微软认证一览表(附图)
  17. 转发--2022新型冠状病毒肺炎诊疗方案(试行第九版)-中医治疗部分
  18. 深入浅出JVM内存模型+垃圾回收算法
  19. java 沙漏_Java – 沙漏
  20. 2022稳定版全网拼多多商品详情api接口sku,详情信息,促销价,优惠券信息等

热门文章

  1. Java算法--串的简单处理
  2. Oracle ABP(Autotask Background Process)
  3. 关于红酒的资料收集-2
  4. django celery
  5. OSChina 周四乱弹 —— 画种稻画美食难画吃屎
  6. [Spring Cloud Task]6 Spring Batch批处理应用设计原则
  7. xadmin引入样式无效
  8. 运用vue.js写的表格小demo
  9. equals()方法详解
  10. 运维中心建设--数据管理