`
mayi_hetu
  • 浏览: 15581 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

poj1850 组合数学

    博客分类:
  • poj
 
阅读更多

/*
    n个字符长度为m的字符串个数C(n,m)
    因为字符串要求是升序的,所以字符确定,字符串序列也就相应确定
    例如,abcd四个字符长度为2的字符串个数为6,ad对应的字符串序列是ad
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define NUM 27
#define LENGTH 11
int tab[NUM][NUM];

//杨辉三角
 void yanghui_table()
 {

    int i,j;

    memset(tab,0,sizeof(tab));

    for(i=0; i<NUM; ++i)
    {
        tab[i][0]=1;
        tab[i][i]=1;

        for(j=1; j<i; ++j)
        {
            tab[i][j]=tab[i-1][j-1] + tab[i-1][j];
        }
    }

 }


int main(int argv,char ** argvc)
{
    int i,j,len,sum;
    char str[LENGTH],ch;

    yanghui_table();
    gets(str);
    len = strlen(str);

    //判断是否是升序
    for(i=1; i<len; ++i)
    {
        if(str[i]<=str[i-1])
        {
            printf("0\n");
            return 0;
        }
    }

    sum = 0;
    //求字符串长度小于str的字符串个数
    for(i=1; i<len; ++i)
    {
        sum += tab[26][i];
    }

    //求字符串长度等于str并在其前面的字符串个数
    for(i=0; i<len; ++i)
    {
        ch = i==0?'a':str[i-1]+1;
        while(ch<str[i])
        {
            sum += tab[25+'a'-ch][len-i-1];
            ch++;
        }
    }
    printf("%d\n",sum+1);
    return 0;
}

分享到:
评论

相关推荐

    组合数学 ACM 和,POJ里用到组合数学的题目

    "组合数学 ACM 和 POJ 里用到组合数学的题目" 组合数学是 ACM/ICPC 竞赛中一个非常重要的领域,它的应用非常广泛,涵盖了排列、组合、生成函数、Burnside 引理、Polya 定理等多个方面。在本文中,我们将对组合数学...

    北大POJ初级-数学

    【北大POJ初级-数学】是北京大学在线编程平台(POJ)上针对初学者设置的一系列数学相关的编程题目。这个解题报告集包含了对这些题目的深入解析和已通过(AC,Accepted)的代码实现,旨在帮助学习者提升在算法和编程...

    POJ算法题目分类

    * 组合数学:组合数学是指解决问题的组合数学算法,如 poj3252、poj1850、poj1019、poj1942。 * 数论:数论是指解决问题的数论算法,如 poj2635、poj3292、poj1845、poj2115。 * 计算方法:计算方法是指解决问题的...

    poj题目分类

    1. 组合数学: * 加法原理和乘法原理。 * 排列组合。 * 递推关系:例如 poj3252、poj1850、poj1019、poj1942。 2. 数论: * 素数与整除问题。 * 进制位。 * 同余模运算:例如 poj2635、poj3292、poj1845、poj...

    POJ 新手题目+部分难题 基本数论+图论+组合数学

    2505 2521 2538 2546 2551 2590 2593 2601 2665 2680 2739 2752 2761 2762 2777 2800 2891 2893 2992 3030 3041 3132 3159 3187 3204 3270 3277 3281 3297 3321 3414 3436 3461 3650 3663 3664 3672 3740

    poj训练计划.doc

    - 组合数学:如`POJ3252, poj1850`。 - 数论:如`poj2635, poj3292`。 #### 第二阶段中级训练计划 #### 第3周至第4周(共85题) - **进阶算法** - C++标准模版库的应用:如`poj3096, poj3007`。 - 复杂的模拟...

    POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类

    POJ平台上的题目涵盖了广泛的技术领域,包括算法、数据结构、动态规划、组合数学等多个方面。通过对这些题目的练习,不仅可以加深对基础概念的理解,还能提高解决问题的能力。以上提到的知识点仅为部分分类,POJ平台...

    acm训练计划(poj的题)

    - (POJ3252, poj1850, poj1019, poj1942):解决计数问题时的一种方法。 4. **概率与期望**: - (poj2635, poj3292, poj1845, poj2115):概率论的基本概念及期望值的计算。 5. **博弈论**: - (poj3273, poj3258...

    acm poj300题分层训练

    5. **动态规划**和**数学**:poj1837、poj1276是简单的动态规划问题,poj3267、poj1836等进一步强化了DP,poj3252、poj1850等则涉及组合数学,poj2635、poj3292等训练了数论知识。 **中级阶段**则更加强调复杂算法...

    经典 的POJ 分类

    - POJ 3252、POJ 1850:组合数学原理的应用。 - POJ 1019、POJ 1942:组合计数问题。 #### 几何问题 - **题目示例**: - POJ 2635、POJ 3292:几何计算及形状问题。 - POJ 1845、POJ 2115:几何图形属性分析。 ...

    poj各种分类

    #### 组合数学 涵盖加法原理、乘法原理、排列组合等,用于解决计数问题,如poj3252。 #### 数论 涉及素数检测、整除性、进制转换、同余方程等,常出现在算法竞赛中。 #### 计算方法 如二分法用于逼近单调函数的根...

    POJ2389-Bull Math

    2. **数学逻辑**:题目可能涉及到一定的数学知识,例如数论、组合数学或者简单的算术运算。需要根据问题描述分析出合适的数学模型。 3. **算法设计**:这可能包括动态规划、贪心算法、回溯法、分治法等,具体取决于...

    POJ1840-Eqs

    4. **数学知识**:题目可能涉及到线性代数、组合数学、数论等数学概念,例如求解线性方程组或处理组合优化问题。 5. **字符串处理**:如果"Eqs"与字符串处理有关,那么可能涉及到字符串匹配、模式查找等操作。 6. ...

    POJ题目简单分类(ACM)

    - **组合数学**:包括计数原理、排列组合以及递推关系,如poj3252。 - **数论**:涵盖素数、整除、进制和同余模运算,如poj2635。 - **计算方法**:如二分法求解单调函数,如poj3273。 7. **计算几何**: - **...

    POJ 我收集的解题报告(100多道)

    6. **数学应用**:组合数学、数论、概率论等在算法中的应用。 7. **字符串处理**:KMP算法、Rabin-Karp算法、Manacher's Algorithm等。 8. **模拟法**:按照题目描述进行程序设计,模拟实际情况。 9. **编码技巧*...

    POJ3122-Pie

    如果是派对问题,可能涉及组合优化。 在实际编程过程中,解决这类问题时还需要注意时间复杂度和空间复杂度的控制,确保程序能在有限的时间内完成计算,并尽可能减少内存使用。同时,对于POJ这类在线判题系统,还...

    POJ 分类题目 txt文件

    数学算法涵盖代数、几何、数论等多个领域,常见的有组合数学、概率统计、矩阵运算等。数论中GCD(最大公约数)和LCM(最小公倍数)的计算,以及多项式的乘法和除法,都是经常遇到的问题。例如,题目poj3101就涉及到...

    递推与组合数学相关题解1

    接着是POJ1942,这道题目的解决方法是利用组合数学中的组合公式C(n, k)。在这个问题中,我们需要计算从矩阵左上角到右下角的不同路径数量,每一步只能向右或向下。通过分析,我们可以发现每一步的路径数量等于到达...

    ACM-POJ 算法训练指南

    2. **组合数学**:如排列组合计算(poj3278, poj1426, poj3126, poj3087.poj3414)。 3. **矩阵运算**:矩阵乘法和矩阵快速幂(poj2531, poj1416, poj2676, 1129)。 ### 五、状态压缩 1. **状态压缩动态规划**:...

    西北工业大学poj

    2. "第一季水题":水题通常指的是相对简单、适合初学者的题目,可能是基础的数据类型操作、逻辑判断或者简单的数学问题,对于入门者来说是很好的起点。 3. "第四季函数":这部分可能涵盖函数的使用、递归、高阶函数...

Global site tag (gtag.js) - Google Analytics