一道高精度DP

  题目大意,换工具,有m块钱,有k种价值的物品,(1...k),求一共有多少种换法

  这一题就是完全背包,现在这种完全背包对我来说就是水题了,

  状态转移方程闭着眼睛写dp[j]+=dp[j-i]

  可是这一题还没完,数据量太大,会出现溢出的情况,这一题有一点高精度的要求,要求也挺简单的,两个long long就可以了

  状态转移方程变为:

    dpl[j]+=dpl[j-i];

    dph[j]+=dph[j-i]+f(j)  当dpl[j]>Up时,f(j)=1,且dpl[j]=dp[j]-Up;

  而且更关键的是,这一题根本就是个错题,因为低位根本不需要加前导0就给过,加了就tle

  

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define UP 1000000000000000000LL
#define CUT 18 static long long dpl[];
static long long dph[]; int main(void)
{
int sum, num, i, j;
long long k, tmp; while (~scanf("%d%d", &sum, &num))
{
dpl[] = ;
for (i = ; i <= num; i++)
{
for (j = i; j <= sum; j++)
{
dpl[j] = dpl[j] + dpl[j - i];
dph[j] = dph[j] + dph[j - i];
if (dpl[j] >= UP)
{
dph[j]++;
dpl[j] = dpl[j] - UP;
}
}
}
if (dph[sum] != )
printf("%lld", dph[sum]);
printf("%lld\n", dpl[sum]);
}
return ;
}

DP:Dollar Dayz(POJ 3181)的更多相关文章

  1. Dollar Dayz POJ - 3181

    解法 完全背包+大数...不想写大数了放个python得了 代码 dp=[0 for i in range(2000)] n,k=map(int,input().split()) num=[i for ...

  2. POJ 3181 Dollar Dayz(全然背包+简单高精度加法)

    POJ 3181 Dollar Dayz(全然背包+简单高精度加法) id=3181">http://poj.org/problem?id=3181 题意: 给你K种硬币,每种硬币各自 ...

  3. POJ 3181 Dollar Dayz && Uva 147 Dollars(完全背包)

    首先是 Uva 147:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_p ...

  4. poj 3181 Dollar Dayz(完全背包)

    Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5419   Accepted: 2054 Descr ...

  5. Dollar Dayz(大数母函数,高低位存取)

    Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5655   Accepted: 2125 Descr ...

  6. POJ 3181 Dollar Dayz DP

    f[i][j]=f[i-j][j]+f[i][j-1],结果很大需要高精度. //#pragma comment(linker, "/STACK:1024000000,1024000000& ...

  7. POJ 3181 Dollar Dayz 简单DP

    这DP虽然简单 但是思考一下还是挺好的 题意是 1,2,3,4....k 用加法凑成N 每个数可取不限个数 令dp[i][j] 表示前i种数凑成j的方案数 然后dp[i][j] = dp[i - 1] ...

  8. (完全背包 大数)Dollar Dayz (POJ 3181)

    http://poj.org/problem?id=3181 Description Farmer John goes to Dollar Days at The Cow Store and disc ...

  9. poj 3181 Dollar Dayz (整数划分问题---递归+DP)

    题目:http://poj.org/problem?id=3181 思路:将整数N划分为一系列正整数之和,最大不超过K.称为整数N的K划分. 递归:直接看代码: 动态规划:dp[i][j]:=将整数i ...

随机推荐

  1. C语言浮点数除法可以精确到多少位小数

    double型的两个数相除,得到的浮点数能精确到多少位呢..用我家电脑做了个实验,编译器是Code::Blocks 13.12. 然后用电脑自带的计算器算的结果和C语言算的结果比较如图. 第一例里a= ...

  2. Java中数据类型转换问题

    boolean类型不可以转换为替他的数据类型. Java中byte(8位).short(16位).char三种类型的优先级是相同的,相同优先级之间是不能进行自动转换的(如果相互转换的话,必须强制类型转 ...

  3. linux学习笔记一----------文件相关操作

    一.目录结构 二.文件管理操作命令(有关文件夹操作,使用Tab键自动补全文件名(如果多个默认第一个)) 1.ls 查看目录信息:ls -l 查看目录详细信息(等价于ll 某些系统不支持) 2.pwd ...

  4. ccleaner注册码

    名称:Registered User 密钥:CBB4-FJN4-EPC6-G5P6-QT4C 先不要启动程序,然后断网注册.

  5. C++中的异常处理(二)

    C++中的异常处理(二) 标签: c++C++异常处理 2012-11-24 20:56 1713人阅读 评论(2) 收藏 举报  分类: C++编程语言(24)  版权声明:本文为博主原创文章,未经 ...

  6. git曲线

    git 更新牵涉到三个地方的内容: ?? (pull下来的) 正在编辑的目录, 即工作空间; 本地的仓库;   (这个动作叫 : commit) github.com上的服务器即 refs (这个动作 ...

  7. 简单实现Tab切换(带框架)

    <script type="text/javascript"> $(function () { //加载时添加的标签卡 if ('<%=Request[" ...

  8. unity StreamingAssets路径

    原地址:http://blog.csdn.net/nateyang/article/details/8493791 我们在读写例如XML和TXT文件的时候,在电脑上和手机上路径不一致,造成了很多麻烦, ...

  9. mysql.msi安装流程

    Mysql For Windows安装图解 演示安装版本:mysql-5.5.20-win32.msi(目前是mysql for windows的最新版)安装环境:Windows Server 200 ...

  10. 不同版本的name可以重复

    - validates :name, presence: true, uniqueness: { conditions: -> { where(:state.ne => 2) } }, l ...