刷题——Dollar Dayz POJ
来源:互联网 发布:CMS淀粉 编辑:程序博客网 时间:2024/06/06 00:56
/*
n元钱在一个有1-k元的店里买东西,每样东西都是无限的,问有多少种购买方法
dp[i][j]表示i元钱买1-j东西的方法数,画个图很容易发现:
dp[i][j]={
dp[i][j]=dp[i-1][j]:i<j
dp[i][j]=dp[i-1][j]+dp[i][j-i]
}
题目数据比较大,n=1000,k=100时答案有30多位转换成大数求解
*/
#include <stdio.h>
#include <string.h>
#define ll long long
char dp[105][1005][50];
int sz(char c){
if(c)return c-'0';
return 0;
}
int main(){
int n,k;
while(~scanf("%d %d",&n,&k)){
memset(dp,0,sizeof(dp));
for(int i=0;i<=k;i++){
dp[i][0][0]='1';
}
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
if(j>=i){
int jw=0;
for(int d=0;dp[i-1][j][d]||dp[i][j-i][d];d++)
{
int a=sz(dp[i-1][j][d]),b=sz(dp[i][j-i][d]);
int temp=(a+b+jw)/10;
dp[i][j][d]=(a+b+jw)%10+'0';
jw=temp;
}
if(jw){
dp[i][j][strlen(dp[i][j])]=jw+'0';
}
}
else{
for(int d=0;dp[i-1][j][d];d++)
dp[i][j][d]=dp[i-1][j][d];
}
}
}
for(int i=strlen(dp[k][n])-1;i>=0;i--){
printf("%c",dp[k][n][i]);
}
printf("\n");
}
return 0;
}
n元钱在一个有1-k元的店里买东西,每样东西都是无限的,问有多少种购买方法
dp[i][j]表示i元钱买1-j东西的方法数,画个图很容易发现:
dp[i][j]={
dp[i][j]=dp[i-1][j]:i<j
dp[i][j]=dp[i-1][j]+dp[i][j-i]
}
题目数据比较大,n=1000,k=100时答案有30多位转换成大数求解
*/
#include <stdio.h>
#include <string.h>
#define ll long long
char dp[105][1005][50];
int sz(char c){
if(c)return c-'0';
return 0;
}
int main(){
int n,k;
while(~scanf("%d %d",&n,&k)){
memset(dp,0,sizeof(dp));
for(int i=0;i<=k;i++){
dp[i][0][0]='1';
}
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
if(j>=i){
int jw=0;
for(int d=0;dp[i-1][j][d]||dp[i][j-i][d];d++)
{
int a=sz(dp[i-1][j][d]),b=sz(dp[i][j-i][d]);
int temp=(a+b+jw)/10;
dp[i][j][d]=(a+b+jw)%10+'0';
jw=temp;
}
if(jw){
dp[i][j][strlen(dp[i][j])]=jw+'0';
}
}
else{
for(int d=0;dp[i-1][j][d];d++)
dp[i][j][d]=dp[i-1][j][d];
}
}
}
for(int i=strlen(dp[k][n])-1;i>=0;i--){
printf("%c",dp[k][n][i]);
}
printf("\n");
}
return 0;
}
阅读全文
0 0
- 刷题——Dollar Dayz POJ
- POJ——3181Dollar Dayz
- poj 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- Poj 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- POJ-3181-Dollar Dayz
- POJ 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- poj 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- POJ 3181 Dollar Dayz
- 今天写了一条把我两个月职业生涯学到的SQL知识全用上了的语句
- 关闭服务器windows server的IE浏览器的增强安全配置
- 文本相关性排序
- 用javadoc命令生成api帮助文档
- MySQL的InnoDB索引原理详解
- 刷题——Dollar Dayz POJ
- Android 利用 RXJAVA interval 操作符 实现 计时器 功能
- 数据冒险之图以及最小生成树
- DbuilAPI详解
- TCP协议与UDP协议以及两者之间的区别
- 新的开始
- HDU-2084 数塔问题
- 子带技术
- 276. 中位数-计算机二2014 北邮复试机试题目