题目:求由A。B。C构成的有序传中长度为n。且每一个B前面的A的个数不少于当前B,每一个C前面的B的个数不少于当前C的个数。

分析:dp,求排列组合数。

考虑二维的状况:

假设 A>=B 则在 F(A-1。B)后面放上A,在F(A。B-1)后面放上B。

F(A。B)= F(A,B-1)+ F(A-1,B) { A > B }。

当 A = B 时 也满足  F(A,B)= F(A,B-1)+ F(A-1。B)= F(A。B-1)+ 0;

所以有: F(A。B)= F(A,B-1)+ F(A-1,B) { A >= B }。

考虑三维的状况:

F(A,B,C)= F(A-1,B,C)+ F(A,B-1,C-1)+ F(A,B。C-1) {A >= B >= C}。

说明:(2011-09-19 01:32)。

#include <stdio.h>
#include <string.h> char ABC[ 61 ][ 61 ][ 61 ][ 82 ]; int main()
{
memset( ABC, 0, sizeof( ABC ) );
for ( int A = 1 ; A <= 60 ; ++ A )
ABC[ A ][ 0 ][ 0 ][ 0 ] = 1; for ( int A = 1 ; A <= 60 ; ++ A )
for ( int B = 1 ; B <= 60 ; ++ B )
if ( A >= B )
for ( int k = 0 ; k <= 80 ; ++ k ) {
ABC[ A ][ B ][ 0 ][ k ] += ABC[ A-1 ][ B ][ 0 ][ k ] + ABC[ A ][ B-1 ][ 0 ][ k ];
if ( ABC[ A ][ B ][ 0 ][ k ] > 9 ) {
ABC[ A ][ B ][ 0 ][ k+1 ] += ABC[ A ][ B ][ 0 ][ k ]/10;
ABC[ A ][ B ][ 0 ][ k ] %= 10;
}
} for ( int A = 1 ; A <= 60 ; ++ A )
for ( int B = 1 ; B <= 60 ; ++ B )
for ( int C = 1 ; C <= 60 ; ++ C )
if ( A >= B && B >= C )
for ( int k = 0 ; k <= 80 ; ++ k ) {
ABC[ A ][ B ][ C ][ k ] += ABC[ A-1 ][ B ][ C ][ k ] + ABC[ A ][ B-1 ][ C ][ k ] + ABC[ A ][ B ][ C-1 ][ k ];
if ( ABC[ A ][ B ][ C ][ k ] > 9 ) {
ABC[ A ][ B ][ C ][ k+1 ] += ABC[ A ][ B ][ C ][ k ]/10;
ABC[ A ][ B ][ C ][ k ] %= 10;
}
} int n;
while ( scanf("%d",&n) != EOF ) {
int start = 80;
while ( !ABC[ n ][ n ][ n ][ start ] && start > 0 ) -- start;
while ( start >= 0 )
printf("%d",ABC[ n ][ n ][ n ][ start -- ]);
printf("\n\n");
}
return 0;
}

zoj 2711 - Regular Words的更多相关文章

  1. POJ 2711 Regular Words(DP + 高精度)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1711 题目大意:给定一个正整数n,产生一个3*n位长的串,要求这个串 ...

  2. ACM - 动态规划专题 题目整理

    CodeForces 429B  Working out 预处理出从四个顶点到某个位置的最大权值,再枚举相遇点,相遇的时候只有两种情况,取最优解即可. #include<iostream> ...

  3. ZOJ题目分类

    ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...

  4. zoj 1010 Area【线段相交问题】

    链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1010 http://acm.hust.edu.cn/vjudge/ ...

  5. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

  6. [LeetCode] Regular Expression Matching 正则表达式匹配

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  7. ZOJ 3686 A Simple Tree Problem

    A Simple Tree Problem Time Limit: 3 Seconds      Memory Limit: 65536 KB Given a rooted tree, each no ...

  8. MongoVUE1.6.9破解启动提示System.ArgumentException: 字体“Courier New”不支持样式“Regular”

    用MongoVUE,发现报错,报错信息如下: System.ArgumentException: 字体"Courier New"不支持样式"Regular". ...

  9. myeclipse中导入js报如下错误Syntax error on token "Invalid Regular Expression Options", no accurate correc

    今天在使用bootstrap的时候引入的js文件出现错误Syntax error on token "Invalid Regular Expression Options", no ...

随机推荐

  1. 几个类和Table的方法

    public class TableHelper { public static DataTable CreateTableFromClass(Type t) { DataTable dt = new ...

  2. 【NOIP2016练习】T2 forest (树形DP,数论)

    题意:有一棵N个点的树,每个点上有点权 定义路径长度为所经过的所有点的点权之和,树的直径为一棵树中最大的路径长度 有N次询问,每次询问要求回答所有树的直径之积 每次询问后会删一条边,树的数量会+1 要 ...

  3. MinGW 使用和创建 DLL 应注意的问题

    MinGW 是 GCC 的 Windows 版本,稳定版已经到了 4.5.2,功能和性能上很好,感觉不比 Microsoft 自家的 VC 差啊.但是 MinGW 下使用和创建 DLL 倒是要特别注意 ...

  4. hdu 5459(递推好题)

    Jesus Is Here Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)To ...

  5. LeetCode OJ--Rotate Image

    http://oj.leetcode.com/problems/rotate-image/ 将矩阵顺时针旋转90度.要求为原地算法. 注意对输入的测试,矩阵为空,长度为1,为2时…… #include ...

  6. BZOJ 1044 木棍分割(二分答案 + DP优化)

    题目链接  木棍分割 1044: [HAOI2008]木棍分割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3830  Solved: 1453[S ...

  7. git commit或pull后恢复到原来版本

    https://blog.csdn.net/litao31415/article/details/87713712

  8. git使用笔记一:

    Get code into Bitbucket fast using the command line Set up your local directory Set up Git on your m ...

  9. "visual studio 2012 安装引擎拒绝访问" 错误的解决

    首先,我们看一下错误的具体提示,如下图所示: 这个错误,是我安装了那么多年Visual Studio的经历中,第一次遇到.太恶心了,昨天一直安装失败,导致后续其它软件的安装一再拖延.目前网上的解决方案 ...

  10. spring管理事务

    2.1 事务管理器 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现. Spring事务管理器 ...