hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4565 Accepted Submission(s): 2576
12553
13137761
这道题是典型的钱币兑换问题可以用完全背包来解决dp[i][j]代表前i种金钱在兑换数量为j的情况下的可能数
for(i=1;i<=c;i++)//c代表种类
for(j=0;j<=n;j++)//n代表兑换的金钱数
{
if(j<i)
dp[i][j]=dp[i-1][j];
else
dp[i][j]=dp[i][j-i]+dp[i-1][j];//关键就在这里dp[i][j]=(容量为j时装下第i种硬币的数量)+(容量为j不装下i种硬币的数量)
}
- #include<iostream>
- #include<stdio.h>
- #include<cstring>
- using namespace std;
- int dp[4][32780];
- int main()
- {
- int i,j,n;
- dp[0][0]=1;
- for(i=1;i<=3;i++)
- for(j=0;j<=32770;j++)
- {
- if(j<i)
- dp[i][j]=dp[i-1][j];
- else
- dp[i][j]=dp[i][j-i]+dp[i-1][j];
- }
- while(scanf("%d",&n)!=EOF)
- {
- printf("%d\n",dp[3][n]);
- }
- }
对空间进行优化,化为一维数组
- #include<iostream>
- #include<stdio.h>
- #include<cstring>
- using namespace std;
- __int64 dp[35600];
- int main()
- {
- int i,j,n;
- dp[0]=1;
- for(i=1;i<=3;i++)
- for(j=i;j<=35565;j++)//一维完全背包所以从[0,v],二维从[v,1]开始
- {
- dp[j]+=dp[j-i];
- }
- while(scanf("%d",&n)!=EOF)
- {
- printf("%ld\n",dp[n]);
- }
- }
对于理解这种类型的题介绍一种简单这种题,可以很好的理解这道题
点击打开链接
九度oj
- 题目1408:吃豆机器人
-
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:823
解决:159
- 题目描述:
-
淘宝公司内部有许多新鲜的小玩具,例如淘宝智能机器人。小时候,大家都玩过那个吃豆子的游戏吧,这机器人就是按照这个游戏设计的,它会朝着豆子的方向行走。不过机器人还存在一个bug,他只会朝南和朝东走。现在有一块空地,分成了n*m个格子,每个格子内有一颗豆子。机器人的起点在西北角,终点在东南角。请问机器人从起点到终点有多少种不同的方法。
- 输入:
-
每个案例输入只有一行,有n和m两个正整数,n,m均小于等于10^3。由于答案很大,所以答案对10009取余。
- 输出:
-
对于每个案例,输出一行,输出机器人从起点到终点的总方法数。
- 样例输入:
-
- 2 23 3
- 样例输出:
-
- 26
这道题用网格的方法解释
f[n][m]=f[n-1][m]+f[n][m-1];可以很好的印证上面那道题
这道题让我知道了打表可以节省很多时间,如果不打表就过不了
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- int dp[1005][1005];
- int main()
- {
- int i,j,m,n;
- memset(dp,0,sizeof(dp));
- //dp[0][1] = 1;
- for(i=1;i<=1002;i++)
- dp[i][1] = 1;
- for(i=1;i<=1002;i++)
- dp[1][i] = 1;
- for(i=2;i<=1002;i++)
- for(j=2;j<=1002;j++)
- {
- //dp[1][1]=1;
- dp[i][j]=(dp[i-1][j]+dp[i][j-1])%10009;
- //dp[i][j]=dp[i][j]%10009;
- }
- while(scanf("%d%d",&m,&n)!=EOF)
- {
- printf("%d\n",dp[m][n]);
- }
- return 0;
- }
hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人的更多相关文章
- HDU 3788 和九度OJ 1006测试数据是不一样的
ZOJ问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- hdu 1284 钱币兑换问题 完全背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1284 递推公式:dp[i] = sum(dp[i], dp[i-C]) /* 钱币兑换问题 Time ...
- HDU 1284 钱币兑换问题(全然背包:入门题)
HDU 1284 钱币兑换问题(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1284 题意: 在一个国家仅有1分,2分.3分硬币,将钱N ( ...
- HDU 1284 钱币兑换问题(普通型 数量无限的母函数)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1284 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) ...
- HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)
HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包) 题意分析 裸的完全背包问题 代码总览 #include <iostream> #include <cstdio> ...
- HDU 1284 钱币兑换问题 母函数、DP
题目链接:HDU 1284 钱币兑换问题 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- hdu 1284 钱币兑换问题 (递推 || DP || 母函数)
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU 1284 钱币兑换问题 (完全背包)
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU 1284 钱币兑换问题 (动态规划 背包方案数)
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
随机推荐
- Html中截切文章内容,造成标签不全的问题
把标签全部进行替换 ) { string strText = System.Text.RegularExpressions.Regex.Replace(html, "<[^>]+ ...
- bzoj 4373: 算术天才⑨与等差数列 hash
题目链接 题目大意: 给你n个数, 给两种操作, 一种给你l, r, k,问你[l, r]区间里的数排序后能否构成一个公差为k的等差数列. 另一种是将位置x的数变为y. 强制在线. 可以用hash来 ...
- codeforces 620F. Xors on Segments
题目链接 定义一种操作f(u, v) = u^u+1^.......^v. (u<=v), 给n个数, q个询问, 每个询问给出一个区间[l, r], 求这个区间里的f(a[i], a[j]) ...
- javascript Error对象详解
今天谈一下在IE浏览器下返回执行错误的Javascript代码所在的问题.其中在IE浏览器下,如果你使用了try-catch,那么当出现异常的时候,IE浏览器会传递一个Error对象. ~~~怎么通过 ...
- shouldOverrideUrlLoading相关说明
给WebView加一个事件监听对象(WebViewClient)并重写其中的一些方法:shouldOverrideUrlLoading:对网页中超链接按钮的响应.当按下某个连接时WebViewClie ...
- JAVA GUI学习 - 总结
一:项目 二:重要组件补充 三:组件高级操作
- Android手机设置隐藏命令大全
注意:因Android版本较多,固有部分隐藏命令或不能使用 *#*#4636#*#* 显示手机信息.电池信息.电池记录.使用统计数据.WiFi 信息 *#*#7780#*#* 重设为原厂设定,不会删除 ...
- HDU2795 billboard【转化为线段树。】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 hhanger大神的题目,水题都得有点思维. 题意:h*w的木板,放进一些1*L的物品,求每次放 ...
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高. 一个相对完善的自定义控件在布局文件中和java ...
- Android中库项目、jar包等的使用方法
在软件开发过程中,程序代码的复用,是非常重要的概念.我们总是需要使用一些现有的模块.包.框架,或开发自己的模块.包.框架,来实现对程序代码的复用.比如在JavaWeb编程过程中,经常使用的Struts ...