NOIP2011计算系数详解[通俗易懂]

NOIP2011计算系数详解[通俗易懂]原题见洛谷(https://www.luogu.org/problem/show?pid=1313)想看稍微简单点的就是NOIP2016的组合数问题,小飞机~(http://blog.csdn.net/a1351937368/article/details/76907902)先说一下这道题需要用到:组合数(杨辉三角),乘方做这道题的感受:题目中说(by+ax)^k,而输入顺序是先a后b搞

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原题见洛谷(https://www.luogu.org/problem/show?pid=1313
想看稍微简单点的就是NOIP2016的组合数问题,小飞机~(http://blog.csdn.net/a1351937368/article/details/76907902
先说一下这道题需要用到:组合数(杨辉三角),乘方
做这道题的感受:题目中说(by+ax)^k,而输入顺序是先a后b搞得我60分emmmm,膜10007记得要开long long有可能会爆int
根据二项式定理,(x+y)^k中x^m*y^(k-m)的系数为C(k,m)
让我们改装一下:(ax+by)^k中x^m*y^(k-m)的系数为C(k,m)*a^m*b^(k-m)
然后这道题就可以乖乖的AC啦~再加点玄学卡常数和优化这道题总时间0ms(其实没必要)
代码:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>

const int maxn=1500;
int c[maxn][maxn];

inline int read(){
    int num;
    char ch;
    while((ch=getchar())<'0' || ch>'9');
    num=ch-'0';
    while((ch=getchar())>='0' && ch<='9'){
        num=num*10+ch-'0';
    }
    return num;
}
inline void out(int x){
    if(x>=10){
        out(x/10);
    }
    putchar(x%10+'0');
}
inline int time(int p,int q){
    if(q==0){
        return 1;
    }
    long long ans=1;
    for(register int i=1;i<=q;++i){
        ans*=p,ans%=10007;
    }
    return ans;
}

int main(){
    int b=read(),a=read(),k=read(),n=read(),m=read();
    long long ans;
    c[0][0]=1;
    for(register int i=1;i<=k;++i){
        c[i][0]=c[i][i]=1;
    }
    for(register int i=1;i<=k;++i){
        for(register int j=1;j<i;++j){
            c[i][j]=(c[i-1][j]+c[i-1][j-1])%10007;
        }
    }
    ans=c[k][m]*(time(a,m)*time(b,n)%10007)%10007;
    out(ans);
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189663.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python垃圾回收机制(引用计数)

    python垃圾回收机制(引用计数)在Python中,垃圾回收机制主要是以引用计数为主要手段,以标记清除和分代回收机制作为辅助手段实现的

    2022年6月22日
    30
  • polyfill什么意思_fill方法怎么使用

    polyfill什么意思_fill方法怎么使用     今天在做特征工程时,考虑给某列的缺失值,填充为该列的众数。按照之前填补均值和最大最小值的方法:importpandasaspddf.Mer_min_discount.fillna(df.Mer_min_discount.mode(),inplace=True)   结果发现缺失值怎么都填充不上,查阅资料后,恍然大悟,原来由于众数可能存在多个,所以pand…

    2022年8月12日
    5
  • airplay影像_播放ftp服务器的视频

    airplay影像_播放ftp服务器的视频http://bbs.weiphone.com/read-htm-tid-1785042.htmliOS客户端软件:AirPlayer[支持RMVB,MKV,MP4,AVI等等格式],另外有个PulgPlayer不支持RMVBMKV等等格式。PC端媒体服务器:WIN7自带的媒体中心(论坛有设置方法的教程,这不介绍了)…

    2025年12月6日
    4
  • JAVA大数据后台管理系统

    JAVA大数据后台管理系统一款Java语言基于SpringBoot2.x、Layui、Thymeleaf、MybatisPlus、Shiro、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等

    2022年5月4日
    56
  • java打jar包的几种方式详解

    java打jar包的几种方式详解

    2021年11月22日
    37
  • 成员变量,类变量,局部变量的区别是什么_内部变量和局部变量

    成员变量,类变量,局部变量的区别是什么_内部变量和局部变量面向对象编程1.封装性面向对象编程核心思想之一就是将数据和对数据的操作封装在一起,通过抽象即从具体的实例中抽取共同的性质形成一般的概念。2.继承子类可以继承父类的属性和功能,即子类继承了父类所有的数据和数据上的操作,同时又可以添加子类独有的数据和数据上的操作。3.多态有两种意义的多态    1)操作名称的多态  2)和继承有关的多态类:

    2025年7月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号