题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1502

题目大意:找出总的满足条件的字符串数,num(a)=num(b)=num(c)且任何前缀均满足num(a)>=num(b)>=num(c)

解题思路:用dp[i][j][k]表示a取i个,b取j个,c取k个的状态下最多有多少种满足条件的情况,容易推得状态转移方程如下:

dp[i][j][k]=dp[i-1][j][k](i>j时)+dp[i][j-1][k](j>k时)+dp[i][j][k-1](k>0时)

根据该状态转移方程即可输出最后的结果dp[n][n][n]

因为本题的数据结果比较大,所以还需要用到高精度,对不会用java的人就只能手敲一个大数相加了。。。

 #include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define scan(a) scanf("%d",&a)
using namespace std;
#define N 61
char dp[N][N][N][],a[];
void init()
{
strcpy(dp[][][],"1\0");
strcpy(dp[][][],"1\0");
strcpy(dp[][][],"0\0");
strcpy(dp[][][],"1\0");
} void add(char *p)
{
int x,l,i,jin=;
l=strlen(a);
int now=;
for(i=;p[i]!='\0';i++)
//从加数开始一位一位访问
{
if(i>=l)
x=p[i]-''+jin;//i超过了a的长度
else
x=p[i]-''+a[i]-''+jin;
if(x>)
{
jin=x/;
x%=;
}
else
jin=;
a[now++]=x+'';
}
while(jin)
{
if(l<=now)
{
a[now++]=(jin%)+'';
jin/=;
}
else
{
x=a[now]-'';
x+=jin;
if(x>)
{
jin=x/;
x%=;
}
else
jin/=;
a[now++]=x+'';
}
}
if(now>l)
a[now]='\0';
} void put(int x)
{
int l=strlen(dp[x][x][x]);
for(int i=l-;i>=;i--)
cout<<dp[x][x][x][i];
cout<<endl<<endl;
} int main()
{
int i,j,k;
int n;
init();
for(i=;i<=;i++)
{
for(j=;j<=i;j++)
{
for(k=;k<=j;k++)
{
a[]='';
a[]='\0';
// cout<<i<<' '<<j<<' '<<k<<endl;
// cout<<dp[i-1][j][k]<<' '<<dp[i][j-1][k]<<' '<<dp[i][j][k-1]<<endl;
if(i>j&&j>=k)
add(dp[i-][j][k]);
if(j>k)
add(dp[i][j-][k]);
if(k>)
add(dp[i][j][k-]);
strcpy(dp[i][j][k],a);
}
}
}
while(~scanf("%d",&n))
{
put(n);
}
return ;
}

HDU 1502 Regular Words DP+高精度的更多相关文章

  1. hdu 1502 Regular Words_高精度+dp

    题意:问按规则排成的串有多少个A(c)>= B(c) >= C(c) 思路:因为写大整数太累,就偷懒了一下直接用java水过 import java.math.BigInteger; im ...

  2. hdu 1502 Regular Words(DP)

    题意: 一个单词X由{A,B,C}三种字母构成. A(X):单词X中A的个数.B(X),C(X)同理. 一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有 ...

  3. hdu 1502 Regular Words

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1502 思路:给定一个n,分别由n个a,b,c组成的字符串的所有前缀中a的个数大于等于b的个数大于等于c的个 ...

  4. 1166 矩阵取数游戏[区间dp+高精度]

    1166 矩阵取数游戏 2007年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description [ ...

  5. HDU 1011 树形背包(DP) Starship Troopers

    题目链接:  HDU 1011 树形背包(DP) Starship Troopers 题意:  地图中有一些房间, 每个房间有一定的bugs和得到brains的可能性值, 一个人带领m支军队从入口(房 ...

  6. bzoj 1089 [SCOI2003]严格n元树(DP+高精度)

    1089: [SCOI2003]严格n元树 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1250  Solved: 621[Submit][Statu ...

  7. hdu 2296 aC自动机+dp(得到价值最大的字符串)

    Ring Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. CF23 E. Tree 树形dp+高精度

    题目链接 CF23 E. Tree 题解 CF竟让卡常QAQ dp+高精度 dp[x][j]表示以x为根的子树,x所属的联通块大小为j,的最大乘积(不带j这块 最后f[x]维护以x为根的子树的最大答案 ...

  9. HDU 4778 状压DP

    一看就是状压,由于是类似博弈的游戏.游戏里的两人都是绝对聪明,那么先手的选择是能够确定最终局面的. 实际上是枚举最终局面情况,0代表是被Bob拿走的,1为Alice拿走的,当时Alice拿走且满足变换 ...

随机推荐

  1. WEB系统开发方向

    1. UI框架:要可以结合jquery+自定义服务器控件开发一套UI框架: 2.WEB报表设计器:用js开发一套可以自定义报表设计器: 3.WEB自定义表单+工作流设计器: 4.WEB打印组件: 5. ...

  2. Winedt 7.0 Build: 20120321 永久试用方法 WinEdt 7.0 破解

    该方法,不是破解. 因为WinEdt试用版与正式版功能无异. 所以,该方法是 通过更新注册表信息,重置安装时间. 也就是重新获取31天的试用期时长. 方法如下: 1.用管理员权限打开CMD. 2.运行 ...

  3. JAVA 函数式接口与c#委托对应关系(一)

    C# Action委托 VS JAVA Action 接口函数 1.c#:Action 封装一个方法,该方法不具有参数并且不返回值. 构造实体类类 using System; namespace Ac ...

  4. 无法绑定到新的显示成员,参数名:newDisplayMember

    此问题不是网上说的 DisplayMember 等先后顺序问题,即使更换绑定数序,只是把错误覆盖而已(绑定的是对象的类名) ValueMember = "Id"; DisplayM ...

  5. Apache Shiro 快速入门教程,shiro 基础教程 (这篇文章非常好)

    第一部分 什么是Apache Shiro     1.什么是 apache shiro :   Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理 ...

  6. iOS 知识-常用小技巧大杂烩

    原文链接:http://www.jianshu.com/p/7c3ee5e67d03. 自己看的. 1,打印View所有子视图 po [[self view]recursiveDescription] ...

  7. jQuery AJAX load() 方法

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...

  8. http与https差异

    HTTPS和HTTP的区别: https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议 http的连接很 ...

  9. Android Broadcast管理

  10. Linux Kernel Makefile Test

    一.本文说明 本文为linux内核Makefile整体分析的续篇,是依据Linux内核Makefile体系的主要内容编写一个简要的测试工程.Linux内核Makefile体系就好像一只“大鸟”,而这篇 ...