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的任意前缀有A(X)>=B(X)>=C(X)。
给一个数n。问长度为3n的regular word有多少个。
思路:
dp[a][b][c]:前a+b+c个字母由a个A,b个B,c个C构成。
然后就可以分解了,,,
*:用到高精度
代码:
int const MAXN=99999999;
int const DLEN=8; class BigNum{
private:
int a[20];
int len;
public:
BigNum(){};
BigNum(const int);
BigNum &operator=(const BigNum &);
BigNum operator+(const BigNum &) const;
void print();
}; BigNum::BigNum(const int b){
int c,d=b;
len=0;
mem(a,0);
while(d>MAXN){
c=d-(d/(MAXN+1))*(MAXN+1);
d=d/(MAXN+1);
a[len++]=c;
}
a[len++]=d;
} BigNum & BigNum::operator=(const BigNum & n){
int i;
len=n.len;
mem(a,0);
rep(i,0,len-1) a[i]=n.a[i];
return *this;
} BigNum BigNum::operator+(const BigNum & T) const{
BigNum t(*this);
int i,big;
big=T.len>len?T.len:len;
for(int i=0;i<big;++i){
t.a[i]+=T.a[i];
if(t.a[i]>MAXN){
t.a[i+1]++;
t.a[i]-=(MAXN+1);
}
}
if(t.a[big]!=0) t.len=big+1; else t.len=big;
return t;
} void BigNum::print(){
int i;
cout<<a[len-1];
for(i=len-2;i>=0;i--){
cout.width(DLEN);
cout.fill('0');
cout<<a[i];
}
cout<<endl;
} int n;
BigNum dp[62][62][62]; int main(){ int n;
while(scanf("%d",&n)!=EOF){
mem(dp,0);
dp[0][0][0]=BigNum(1); rep(a,0,n){
rep(b,0,n){
rep(c,0,n){
if(a==0 && b==0 && c==0) continue;
if(a>=b && b>=c){
if(a-1>=b && a>=1){
dp[a][b][c]=dp[a][b][c]+dp[a-1][b][c];
}
if(b-1>=c && b>=1){
dp[a][b][c]=dp[a][b][c]+dp[a][b-1][c];
}
if(c>=1){
dp[a][b][c]=dp[a][b][c]+dp[a][b][c-1];
}
}
}
}
}
dp[n][n][n].print();
printf("\n");
} return 0;
}
hdu 1502 Regular Words(DP)的更多相关文章
- HDU 5791:Two(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=5791 Two Problem Description Alice gets two sequences A ...
- HDU 4833 Best Financing(DP)(2014年百度之星程序设计大赛 - 初赛(第二轮))
Problem Description 小A想通过合理投资银行理财产品达到收益最大化.已知小A在未来一段时间中的收入情况,描述为两个长度为n的整数数组dates和earnings,表示在第dates[ ...
- HDU 4833 Best Financing (DP)
Best Financing Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 1422 重温世界杯(DP)
点我看题目 题意 : 中文题不详述. 思路 : 根据题目描述及样例可以看出来,如果你第一个城市选的是生活费减花费大于等于0的时候才可以,最好是多余的,这样接下来的就算是花超了(一定限度内的花超),也可 ...
- HDU 1176 免费馅饼(DP)
点我看题目 题意 : 中文题.在直线上接馅饼,能接的最多是多少. 思路 :这个题其实以前做过.....你将这个接馅饼看成一个矩阵,也不能说是一个矩阵,反正就是一个行列俱全的形状,然后秒当行,坐标当列, ...
- hdu 4055 Number String(dp)
Problem Description The signature of a permutation is a string that is computed as follows: for each ...
- 【HDU - 4345 】Permutation(DP)
BUPT2017 wintertraining(15) #8F 题意 1到n的排列,经过几次置换(也是一个排列)回到原来的排列,就是循环了. 现在给n(<=1000),求循环周期的所有可能数. ...
- HDU 5375 Gray code(DP)
题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...
- hdu 1158 Employment Planning(DP)
题意: 有一个工程需要N个月才能完成.(n<=12) 给出雇佣一个工人的费用.每个工人每个月的工资.解雇一个工人的费用. 然后给出N个月所需的最少工人人数. 问完成这个项目最少需要花多少钱. 思 ...
随机推荐
- Redis核心原理与实践--列表实现原理之quicklist结构
在上一篇文章<Redis列表实现原理之ziplist结构>,我们分析了ziplist结构如何使用一块完整的内存存储列表数据. 同时也提出了一个问题:如果链表很长,ziplist中每次插入或 ...
- 傻子都能懂的并查集题解——HDU1232畅通工程
原题内容: Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都 ...
- 使用Java MVC模式设计一个学生管理系统
最近在做web实验,要求是用jsp+servlet+mysql实现一个学生管理系统,完成对数据库的增删改查. 效果图: 代码: package dao; import java.util.List ...
- 安卓学习记录(四)——体温表APP
1.新建project file->new->new project,选择Basic Activity 2.在content_main.xml中添加一个List View 1 <Li ...
- Linux没有/var/log/messages日志文件
1.新安装的CentOS8没有/var/log/messages日志文件: 安装rsyslog: dnf install -y rsyslog 或 yum install -y rsys ...
- 密码学系列之:Argon2加密算法详解
目录 简介 密钥推导函数key derivation function Password Hashing Competition Argon2算法 Argon2的输入参数 处理流程 简介 Argon2 ...
- 【PHP数据结构】图的应用:最小生成树
在学习了图的基本结构和遍历方式后,我们再继续地深入学习一些图的基本应用.在之前的数据结构中,我们并没接触太多的应用场景,但是图的这两类应用确是面试或考试中经常出现的问题,而且出现的频率还非常高,不得不 ...
- PHP中的MySQLi扩展学习(二)mysqli类的一些少见的属性方法
虽说是少见的一些属性方法,但是可能还是有不少同学在日常的开发中使用过,这里只是学习了可能相对来说我们用得比较少的一些 mysqli 的属性或方法.就当是扩展一下自己的知识体系. 切换用户 首先就是切换 ...
- npm WARN ajv-keywords@2.1.1 requires a peer of ajv@^5.0.0 but none is installed. You must install peer dependencies yourself.
解决: npm install -g npm-install-peers npm install -g npm npm i ajv 但是好像没啥用
- ❤️【Android精进之路-03】创建第一个Android应用程序竟然如此简单❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文会重点介绍如何创建第一个Android应用,以及如何使用Android Studio进行调试 干货满满,建议收藏,需要用到时常看看.小伙伴们如 ...