poj 1850 Code
来源:互联网 发布:淘宝哪家美国代购靠谱 编辑:程序博客网 时间:2024/06/05 09:01
一个组合问题。
现求出比所给字符串str短或和它一样长的所有结果,然后把和str一样长并且比str大的减去,求比str大的字符串时,从i = 1到len - 1比较,只要当前位比str的当前位大即可。
/* * Author: stormdpzh * Time: 2012/5/10 16:53:48 * POJ: 1850 Code */#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cmath>#include <vector>#include <queue>#include <stack>#include <map>#include <set>#include <algorithm>#include <functional>#define sz(v) ((int)(v).size())#define rep(i, n) for(int i = 0; i < n; i++)#define repf(i, a, b) for(int i = a; i <= b; i++)#define repd(i, a, b) for(int i = a; i >= b; i--)#define out(n) printf("%d\n", n)#define wh(n) while(scanf("%d", &n) != EOF)#define whz(n) while(scanf("%d", &n) != EOF && n != 0)#define lint long longusing namespace std;char str[15];int tri[30][30];int res;void getTri(){ memset(tri, 0, sizeof(tri)); tri[0][0] = 1; repf(i, 1, 29) rep(j, i + 1) { if(j == 0 || j == i) tri[i][j] = 1; else tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j]; }}int main(){ getTri(); while(scanf("%s", str) != EOF) { res = 0; int len = strlen(str); rep(i, len) repf(j, i + 1, len - 1) { if(str[i] > str[j]) { printf("0\n"); return 0; } } repf(i, 1, len) res += tri[26][i]; rep(i, len) res -= tri[26 - (str[i] - 'a' + 1)][len - i]; out(res); } return 0;}
- poj 1850 Code
- poj 1850 Code
- poj 1850 code
- poj 1850 Code
- poj 1850 Code
- poj 1850 Code
- poj 1850 Code
- POJ 1850 Code
- POJ 1850 Code
- poj 1850 Code
- POJ 1850 Code
- poj 1850 Code
- POJ 1850 Code
- POJ 1850 Code
- POJ 1850--Code
- POJ 1850 Code
- POJ - 1850 Code
- POJ 1850 Code
- 第十三周任务一(通过程序分析理解虚函数, 多态性和抽象类)
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- 模板——函数模板与类模板
- hdu2955
- 汉诺塔算法//printf("%d:%c->%c\n",n,one,three);
- poj 1850 Code
- Java 7u4开始支持OSX
- android 应用 heap size分配
- Ubuntu12.04下eclipse提示框黑色背景色的修改方法
- 互联网手机躁动:“周大炮”追逐“雷布斯”
- 四大电商对垒价格战:家电高库存或是推手
- 在iframe中使用js代码实现自动设置栽入的页面的高度
- poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
- 中国消费者为何不愿为App付费?