- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个输入:
作为我需要的输出:
程序应该确定是否有解决方案,因此输出应该是"is"或“否”。
我使用动态规划编写了程序,但它仅在我一次输入一个测试用例时有效如果我一次编写比方说 200 个测试用例,输出并不总是正确的。
我假设我遇到了测试用例之间错误保存状态的问题。我的问题是,我该如何解决这个问题?我只是征求一些建议。
这是我的代码:
#include<iostream>
#include<stdio.h>
#include<string>
#define max_muenzwert 1000
using namespace std;
int coin[10];//max. 10 coins
int d[max_muenzwert][10];//max value of a coin und max. number of coins
int tabelle(int s,int k)//computes table
{
if(d[s][k]!=-1) return d[s][k];
d[s][k]=0;
for(int i=k;i<=9&&s>=coin[i];i++)
d[s][k]+=tabelle(s-coin[i],i);
return d[s][k];
}
int main()
{
int t;
for(cin>>t;t>0;t--)//number of testcases
{
int n; //value we are searching
scanf("%d",&n)==1;
int n1;
cin>>n1;//how many coins
for (int n2=0; n2<n1; n2++)
{
cin>>coin[n2];//value of coins
}
memset(d,-1,sizeof(d));//set table to -1
for(int i=0;i<=9;i++)
{
d[0][i]=1;//set only first row to 1
}
if(tabelle(n,0)>0) //if there's a solution
{
cout<<"yes"<<endl;
}
else //no solution
{
cout<<"no"<<endl;
}
}
//system("pause");
return 0;
}
最佳答案
如您所见,您拥有可变数量的硬币,您正在使用以下行输入:cin>>n1;//how many coins
。但是在 tabelle
方法中,您总是在 0 - 9
中循环,这是错误的。您应该只循环遍历 0 - n1
。试试这个测试用例:
21022 51019
对于第二个测试集,你的答案应该是no
,但你的程序会说yes
,因为它会在硬币数组的第二个元素中找到 5。
关于c++ - 动态规划 : coin change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10091743/
在以下情况下,如何确定函数返回 0 或 1 的概率: Let the function_A return 0 with probability 40% and 1 with probability 6
我是 prolog 的新手,正在尝试解决这个经典的硬币找零问题。 用公式 M>=0 和 M = P+5*N+10*D 改变(M,P,N,D)这是我的方法 change(M,P,N,D) :-
我目前正在使用 COIN OR BCP 框架研究分支和价格 (BAP) 算法。这是一个不错的框架,但有点旧,而且文档也不好。我希望这里有人能够回答我的问题。 我的 BAP 算法运行良好,但我注意到,我
题目地址:https://leetcode.com/problems/coin-change/description/ 题目描述 Youare given coins of different d
题目地址:https://leetcode.com/problems/arranging-coins/#/descriptionopen in new window 题目描述 Youhave a
为什么我的代码没有打印名为 coins 的 int ?运行调试系统时我没有看到任何错误。 #include #include int main(void) { // getting the us
我正在尝试设置 Coin-CLP按照网站上的说明还支持 CPLEX(我已经安装并在我的机器上顺利运行)。 不幸的是,当我尝试在安装时运行配置步骤时,在我想要包含 CPLEX 的版本中看起来像这样: .
所以我正在做硬币系统,但我遇到了一个小问题。通常,每当我输入某些内容时,我都会得到 1 个硬币,但当我使用 !coins 命令检查我有多少硬币时,我不希望机器人给我硬币。我希望它在使用此命令时忽略给我
我在使用 Javascript Coin Slider 时遇到问题(非常棒,下载地址:this workshop)。我附上 2 个屏幕截图。一个是在 chrome 中工作的文件,第二个是同时托管在我的
我有一个输入: 测试用例数量 一笔钱 作为我需要的输出: 我们拥有的不同硬币的数量以及每枚硬币的值(value)。 程序应该确定是否有解决方案,因此输出应该是"is"或“否”。 我使用动态规划编写了程
所以这是我的代码,我试图找出从无限供应的硬币中组成我的目标数量的最小硬币数量。我的问题是我没有得到所需的硬币数量,而是得到了 0。那么我该如何解决这个问题呢?如果我不清楚的话,很抱歉。我的英语不太好:
尝试为一般硬币找零问题编写 DP 解决方案,同时跟踪使用了哪些硬币。到目前为止,我一直在努力为我提供所需的最少硬币数量,但无法弄清楚如何获得使用了哪些硬币以及使用了多少次。如果使用硬币,我尝试用值设置
http://uva.onlinejudge.org/external/6/674.html我正在努力解决这个问题。不过请注意,这不是最小硬币找零问题,它要求我使用 50、25、15、10、5 和 1
我正在研究一些算法,遇到了 coin change问题。 在思考这个问题时,我想到了这个朴素的递归解决方案: int coinChange(const vector& coins, int start
我遇到了 a nice post在@amalloy 上寻找 hylomorhism示例,通过有用的讨论和完整的实现来说明递归方案 (RS) 的用法: {-# LANGUAGE DeriveFuncto
当接受我正在制作的 NFT 的付款时,我如何确保我可以从我的模块调用 coin.transfer 和 coin.details? 最佳答案 所以唯一的必要条件是 代币合约引用 传输能力 您可以像普通函
我想在 ERC-20 网络上创建一个 token 。 我想继承我合约中的接口(interface)。 当我继承表单界面时,它向我显示此错误: Contract "CpayCoin" should be
/**************************************************** **********************************************
我最近开始解决 DP 问题,并遇到了 COINS。我尝试使用带有内存功能的 DP 来解决它,如果我使用 int 数组(我猜),它就可以正常工作。这是我的方法(剩下一些修改): #include #i
假设有一家公司拥有几个vending machines收集硬币的。当投币保险箱已满时,机器将无法出售任何新元素。为了防止这种情况发生,公司必须在此之前收集硬币。但如果公司太早 dispatch 技术人
我是一名优秀的程序员,十分优秀!