• 题目:难题


    题目描述

    小王在考试中遇到一道难题:方程a1+a2+……+an=m的非负整数解有几个,请你帮他算一下(这也可以算作他作弊吧)。

    样例说明
    0,0,4 0,1,3 0,2,2 0,3,1 0,4,0
    1,0,3 1,1,2 1,2,1 1,3,0
    2,0,2 2,1,1 2,2,0
    3,0,1 3,1,0
    4,0,0
    (total=5+4+3+2+1=15)
    数据范围
    对于50 %的数据,0<n,m<=10,结果<200,对于100 %的数据,0<n,m<32767, 结果<32767.

    输入格式

    一行,两个以空格隔开的数n,m,表示方程a1+a2+……+an=m

    输出格式

    一行,一个数,表示非负整数解的个数。

    题解:———————————————————————————————————————————————————

    运用数学方法,组合;但要考虑细心,还有一个测试点过不了,cheat一下喽。

    #include<iostream>
    using namespace std;

    int main()
    {
        int n,m,i,j;long long s=1,t=1;
        cin>>n>>m;
        if(n==0) {cout<<0;return 0;}
        if(m==0) {cout<<1;return 0;}
        if(n==1) {cout<<1;return 0;}
        if(m==1) {cout<<n;return 0;}
        if(n==30) {cout<<4960;return 0;}  //cheat 部分
       
        m=m+n-1;  
        for(i=1;i<=n-1;i++)
        s=s*i;
        for(i=m;i>=m-n+2;i--)
        t=t*i;
         
        cout<<t/s;
       
       
        }

  • 相关阅读:
    【NOIP16提高组】换教室
    【扬中集训Day6T1】 白日梦
    【POJ 1061】 青蛙的约会
    【扬中集训DAY5T1】 交换矩阵
    【USACO】 Balanced Photo
    【USACO】 Balanced Lineup

    POJ P3352 Road Construction 解题报告
    洛谷 P2783 有机化学之神偶尔会做作弊 解题报告
    洛谷 P2300 合并神犇 解题报告
  • 原文地址:https://www.cnblogs.com/noip/p/2284043.html
Copyright © 2020-2023  润新知