zoj 2711 - Regular Words
题目:求由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的更多相关文章
- POJ 2711 Regular Words(DP + 高精度)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1711 题目大意:给定一个正整数n,产生一个3*n位长的串,要求这个串 ...
- ACM - 动态规划专题 题目整理
CodeForces 429B Working out 预处理出从四个顶点到某个位置的最大权值,再枚举相遇点,相遇的时候只有两种情况,取最优解即可. #include<iostream> ...
- ZOJ题目分类
ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...
- zoj 1010 Area【线段相交问题】
链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1010 http://acm.hust.edu.cn/vjudge/ ...
- ZOJ People Counting
第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...
- [LeetCode] Regular Expression Matching 正则表达式匹配
Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- MongoVUE1.6.9破解启动提示System.ArgumentException: 字体“Courier New”不支持样式“Regular”
用MongoVUE,发现报错,报错信息如下: System.ArgumentException: 字体"Courier New"不支持样式"Regular". ...
- myeclipse中导入js报如下错误Syntax error on token "Invalid Regular Expression Options", no accurate correc
今天在使用bootstrap的时候引入的js文件出现错误Syntax error on token "Invalid Regular Expression Options", no ...
随机推荐
- bzoj 4184 shallot 时间线建线段树+vector+线性基
题目大意 n个时间点 每个时间点可以插入一个权值或删除一个权值 求每个时间点结束后异或最大值 分析 异或最大值用线性基 但是线性基并不支持删除操作 我们可以对时间线建一棵线段树 离线搞出每个权值出现的 ...
- Day 16 购物车
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "DaChao" # Date: 2017/6/7 #! ...
- Codeforces 622C Not Equal on a Segment 【线段树 Or DP】
题目链接: http://codeforces.com/problemset/problem/622/C 题意: 给定序列,若干查询,每个查询给定区间和t,输出区间内任意一个不等于t的元素的位置. 分 ...
- 空间划分的数据结构(网格/四叉树/八叉树/BSP树/k-d树/BVH/自定义划分)
目录 网格 (Grid) 网格的应用 四叉树/八叉树 (Quadtree/Octree) 四叉树/八叉树的应用 BSP树 (Binary Space Partitioning Tree) 判断点在平面 ...
- nginx--cookies转发
nginx根据cookie分流 nginx根据cookie分流众所周知,nginx可以根据url path进行分流,殊不知对于cookie分流也很强大,同时这也是我上篇提到的小流量实验的基础. 二 ...
- Cesium之3D拉伸显示行政区
转自原文 Cesium之3D拉伸显示行政区含GeoJSON数据生成过程GDAL的ogr2ogr Cesiumjs 是一套javascript库,用来渲染3D地球,2D区域地图,和多种GIS要素.不需要 ...
- java判断日期与星期
原文:http://www.open-open.com/code/view/1440592372888 import java.text.SimpleDateFormat; import java.u ...
- [__NSCFConstantString size]: unrecognized selector sent to instance 错误
因为使用时候的类型和初始化的对象类型不匹配造成的,例如 - (NSMutableDictionary *)getMenuItems{ NSArray *defaultTmp = [NSArray ...
- iPhone 证书导出分享给多个开发人员操作
1.应用程序->实用工具->keychain Access->操作如图1 2.将上图导出的证书.AppleWWDRCA.cer.mythlinkDeveloper.mobilepro ...
- 我们为什么要把Dagger2,MVP以及Rxjava引入项目中?
1Why? 我们为什么要把Dagger2,MVP以及Rxjava引入项目中? 毫无疑问在Android开发圈中这三个技术是经常被提及的,如此多的文章和开源项目在介绍他们,使用他们,开发者也或多或少的被 ...