hdu 1028 Ignatius and the Princess III
2011-11-23 20:24
363 查看
二维DP
我感觉DP最重要就是找到递推公式和截止点
ans[i][j]表是n为i 时 组合成i的若干个数中最大为j(至少有一个为j)的 种数
不知数据多大 直接用了64位
http://acm.hdu.edu.cn/showproblem.php?pid=1028
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
__int64 ans[121][121];
__int64 dp(int i,int j)
{
if(ans[i][j]!=-1)//第 1 种情况
return ans[i][j];
if(i<j)//第 2 种情况
{
ans[i][j]=0;
return ans[i][j];
}
if(i==j)//第三种情况
{
ans[i][j]=1;
return ans[i][j];
}
if(i>j)//第四种情况 重点
{
ans[i][j]=0;
for(int w=1;w<=j;w++)
ans[i][j]+=dp(i-j,w);
return ans[i][j];
}
}
int main()
{
int n,i;
__int64 T;
while(cin>>n)
{
memset(ans,-1,sizeof(ans));
T=0;
for(i=1;i<=n;i++)
T+=dp(n,i);
printf("%I64d\n",T);
}
return 0;
}
我感觉DP最重要就是找到递推公式和截止点
ans[i][j]表是n为i 时 组合成i的若干个数中最大为j(至少有一个为j)的 种数
不知数据多大 直接用了64位
http://acm.hdu.edu.cn/showproblem.php?pid=1028
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
__int64 ans[121][121];
__int64 dp(int i,int j)
{
if(ans[i][j]!=-1)//第 1 种情况
return ans[i][j];
if(i<j)//第 2 种情况
{
ans[i][j]=0;
return ans[i][j];
}
if(i==j)//第三种情况
{
ans[i][j]=1;
return ans[i][j];
}
if(i>j)//第四种情况 重点
{
ans[i][j]=0;
for(int w=1;w<=j;w++)
ans[i][j]+=dp(i-j,w);
return ans[i][j];
}
}
int main()
{
int n,i;
__int64 T;
while(cin>>n)
{
memset(ans,-1,sizeof(ans));
T=0;
for(i=1;i<=n;i++)
T+=dp(n,i);
printf("%I64d\n",T);
}
return 0;
}
相关文章推荐
- HDU 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III 简单dp
- hdu 1028 Ignatius and the Princess III
- HDU 1028 - Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III +hdu 1085 Holding Bin-Laden Captive!(母函数)
- HDU - 1028 Ignatius and the Princess III解题报告(线性dp)
- hdu 1028 Ignatius and the Princess III(整数划分)
- hdu-1028-Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- HDU 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III
- [ACM] hdu 1028 Ignatius and the Princess III (母函数)
- HDU 1028 —— Ignatius and the Princess III
- hdu 1028 Ignatius and the Princess III 整数划分+dp 组合
- HDU 1028 Ignatius and the Princess III(母函数)
- HDU 1028 Ignatius and the Princess III(整数拆分问题)