UVA 357 Let Me Count The Ways

2026年5月典型AI应用落地 2026年5月AI应用全面进入商用化阶段,呈现三大特征:产业端深度渗透核心业务场景,如法律领域AI合同处理系统完成8500万元项目;消费端实现规模普及,京东618全场景AI化,智能家居产品涌现;基础设施层面运营商推出词元套餐降低使用门槛。政策法规与国际合作同步推进,日本通过首部AI专项法律,中国举办多场产业对接会。AI应用从技术验证转向实效产出,进入精算回报的成熟期。 阅读详情

题目: 在1-30000中,每个数字,用1、5、10、25、50,不同组合而成,确定有多少种组合。(或者,这样理解题目:用1、5、10、25、50组合所有1-30000里的数,每种数字都可重复使用,确定1-30000里的数每一个有多少种方法)具体看题目。

分析:
1.看代码理解。别人称之为:动态规划。可能是竞赛里的,一个专门问题。(本人没想到)

2.本人起始思路用递归法。先找到「最大的纸币」,看剩余钱数目,再找剩余钱「最大的纸币」,看剩余的钱,重复直至剩余的钱 最大纸币为1,或者没有剩余的钱。再回退到上一次,因为有多张「最大纸币」,把此时剩余的钱,加上一张「最大纸币」…(略,语言难以描述清晰)
例子:b
在这里插入图片描述
大致看一下。但是,此方法不适用1-30000的范围,栈会溢出,看看就好。

注意:看代码。

思路2:c++(别的博主,未经允许,若冒犯则删除)

#include <iostream>
using namespace std;
#include <cstring>
#include <stdio.h>

int coin[5] = {1,5,10,25,50};
long long dp[30010];

int main() {

    int n;
//  memset(dp,1,sizeof(dp));
    dp[0] = 1;
    for(int i = 0; i < 5;i++) {
        for(int j = 0; j < 30000; j++)
            dp[j + coin[i]] += dp[j];
    }
    while(scanf("%d",&n)!=EOF){
        if(dp[n] == 1)
            printf("There is only %d way to produce %d cents change.\n",1,n);
        else 
            printf("There are %lld ways to produce %d cents change.\n",dp[n],n);
    }
    return 0;
}

思路二:递归,但是会栈溢出,看看就好

#include"stdlib.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
int count=0;
int a[5]= {1,5,10,25,50};
int find_x(int m);
void put_back(int m,int x);
int main()
{
    int m;
    while(~scanf("%d",&m))
    {
        count=0;
        put_back(m,find_x(m));
        if(count==1)
        {
            printf("There is only 1 way to produce %d cents change.\n",m);
        }
        else
        {
            printf("There are %d ways to produce %d cents change.\n",count,m);
        }
    }
}


int find_x(int m)
{
    int i;
    for(i=4; i>=0; i--)
    {
        if(m>=a[i])
        {
            return i;
        }
    }
    return 0;
}

void put_back(int m,int x)
{
    int count_note;
    int i;
    if(x<=0 ||m==0)
    {
        count++;
       return;
    }
    for(i=x; i>=0; i--)
    {
        count_note=m/a[i];
        m=m%a[i];
        if(i==0)
            {
                put_back( m, find_x(m)-1);

            }
        else
        {
            while(count_note-- )
            {
                put_back( m, (find_x(m)>=i)?(i-1):find_x(m));
                m=m+a[i];
            }
        }
    }
    return ;
}

反思:
1.写递归时,可以先用实例模拟描述(如图),并且 选用变量、对变量操作时,尽可能不要用中间变量。(否则,反复出错)
一定要确保整个思路没错(意思是 翻译成 代码前,所有的细节点都考虑清楚。骨肉相连)

2.看清题意。

3.思维:原本我们都是从问题出发,求解。一个问题一个解。在计算机,给定范围后,我们可以求出所有解,用数组存储。还有此题的“动态规划”思维太精妙了,还需消化。

代码一来源:https://blog.youkuaiyun.com/vv494049661/article/details/50739279

RTT(RT-Thread)串口设备(RTT保姆级教程) 本章主要介绍串口设备在RT-Thread操作系统中应用层如何使用。关于串口设备的使用,我们只需要在应用层找到串口设备,然后去初始化,初始化完成以后就可以读写串口设备了。操作的方法在应用层,驱动是不需要我们去完成的,驱动已经在操作系统中提供了。 阅读详情

相关推荐

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码1.Win10系统配置OpenPose1.7.0的Python API 本人最近在研究基于骨架的动作识别方法,有幸看到端到端的ST-GCN算法,于是决定自己复现一下。(具体原理这里不介绍,大家自行查阅,比如Openpose是个啥?ST-GCN又是个啥?) 1.Win10系统配置OpenPose1.7.0的Python API 安装步骤: (1) ...

QIANFANGshiwo的博客 3035

UVA - 357Let Me Count The Ways(完全背包)

题目:UVA - 357Let Me Count The Ways(完全背包) 题目大意:给出N,问用1, 5, 10, 25, 50,这些硬币能够凑出N的方式有多少种。 代码: #include #include const int N = 5; const int maxn = 30005; const int coin[N] = {1, 5, 10, 25, 50

859

YT8531 PHY芯片硬件设计与MDIO/RGMII实战指南

以太网PHY芯片是FPGA系统实现网络通信的物理层核心,其关键在于标准接口(如MDIO管理总线和RGMII数据接口)的正确实现与协同。MDIO作为IEEE 802.3定义的低速配置通道,负责寄存器级控制与状态监控;RGMII则通过双沿采样精简引脚,在千兆速率下兼顾性能与PCB布线可行性。技术价值体现在电压兼容性(支持1.8V/2.5V/3.3V)、可编程时序调节(RX_DELAY/TX_DELAY)及多级环回测试能力,显著提升国产FPGA平台(如Xilinx Zynq)的工程鲁棒性。典型应用场景涵盖嵌入式网

weixin_42453228的博客 1333

uva 357 Let Me Count The Ways (DP)

uva 357 Let Me Count The Ways After making a purchase at a large department store, Mel's change was 17 cents. He received 1 dime, 1 nickel, and 2 pennies. Later that day, he was shopping at a c

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 812

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

DDR5内存Training全解析:从信号完整性到CS训练模式的实战指南

本文深入解析了DDR5内存Training的全过程,从信号完整性挑战到CS训练模式(CSTM)的实战应用。文章详细阐述了Training在DDR5高频时代的关键作用,对比了In-Band与OOB两种架构,并拆解了Intel MRC的核心训练步骤,为硬件与固件工程师提供了诊断与优化系统稳定性的实用指南。

weixin_29252171的博客 1024

UVa 357 Let Me Count The Ways 解答

题目描述:http://uva.onlinejudge.org/external/3/357.html 最基础的动态规划,使用滚动数组优化后代码: /* * 357.cc * * Created on: Jan 9, 2013 * Author: guixl */ #include #define int64 long long int money

guixunlong的专栏 768

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 334

UVA 357 - Let Me Count The Ways

题意: 换硬币 思路: 跟uva674 http://blog.youkuaiyun.com/conatic/article/details/50850516没什么不同 , 改了long long 即可 代码:#include <iostream> #include<cstdio> #include<cstring> #include <algorithm> using namespace std;

不要皱眉 492

Silvaco 学习笔记——物理模型:载流子产生复合模型

对载流子的复合机制进行总结

reactortiger的博客 1万+

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2727

UVA 357 Let Me Count The Ways

背包变形。 #include #include #include #include #include using namespace std; typedef unsigned long long ULL; const int MAXN = 30010; const int INF = 0x3f3f3f3f; ULL f[30010]; int n, C; int V[] =

Wall_F的专栏 726

GEE案例:Landsat 5、7、8影像构建1985-2023年rsei生态遥感指数详细代码

rsei(Regional Silviculture Ecological Index,地区林业生态指数)是一种生态遥感指标,用于评估森林生态系统的健康状况和生态服务。构建1985-2023年的rsei生态遥感指,主要需要使用Landsat 5、7和8的遥感影像数据。以下是一种可能的构建方法:1. 数据获取:从美国地质调查局(USGS)或其他可靠数据提供商处获取Landsat 5、7和8的遥感影像数据。确保选择的影像具有适当的空间和时间分辨率,以覆盖所需的时间段。

此星光明博客 3395

UVa 357 - Let Me Count The Ways

/*UVa 357 - Let Me Count The Ways*/ import java.util.Scanner; class Main { public static void main(String[] args) throws Exception { int arr[] = { 1, 5, 10, 25, 50 }; long dp[] = new long[30001]

annie11640389的专栏 609

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

UVa 357 - Let Me Count The Ways 背包

Let Me Count The Ways  After making a purchase at a large department store, Mel's change was 17 cents. He received 1 dime, 1 nickel, and 2 pennies. Later that day, he was shopping at a co

Azarath Metrion Zinthos 1014

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

UVA 357 Let Me Count The Ways(完全背包)

UVA 357 Let Me Count The Ways(完全背包) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=293 题意: 有5种硬币: 1分 5分 10分 25分 和50分. 现在给你一个面值n, 问你有多少种方法能利用上述硬币组合出n分的金钱. 分析: 典型的完全背包问题. 本题的限制条件: 硬币钱数正好等于n

code 1373

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

UVa 357: Let Me Count The Ways

解法同UVa 147。 代码如下: #include #include #include #include #include using namespace std; #define max(i,j) (i>j?i:j) #define maxn 30005 const int value[5] = { 1, 5, 10, 25, 50 }; long long nWay[maxn

rising_fallmoon的专栏 949

uva 357 Let Me Count The Ways(01背包)

题目连接:357 - Let Me Count The Ways 题目大意:有5种硬币, 面值分别为1、5、10、25、50,现在给出金额,问可以用多少种方式组成该面值。 解题思路:和uva674是一样的, 只是上限不一样, 还有注意下输出。 #include #include const int N = 30005; const int val[5] = {

不慌不忙、不急不躁 1427

uva 357 - Let Me Count The Ways

昨天太着急 没注意数据的范围直接用dp数组直接用int 了 今天想了一下 应该用long long #include <cstdio> #include <cstring> int coin[5]= {1,5,10,25,50}; long long dp[5][30010]; long long dfs(int cur,int sum) ...

dianmairou5198的博客 143

UVa 357 Let Me Count The Ways (完全背包)

357 - Let Me Count The Ways Time limit: 3.000 seconds  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=293 思路:dp[i] += dp[i - coin[

AC,∑ndless 2189

UVA - 357 Let Me Count The Ways(完全背包)

题目大意:给定五种硬币 1c, 5c, 10c, 25c, 50c,及一个面值额,看有多少种方法可以组成当前面值额。 解析:比较简单的dp题 用dp[v]表示:当前价格用的方法个数 状态转移方程:dp[v + coin[i]] += dp[v]; 唯一

小G的ACM之路 787

UVA - 357 Let Me Count The Ways

题意:还是凑钱问题 #include #include #include #include using namespace std; const int MAXN = 30005; int money[5] = {1,5,10,25,50}; long long dp[MAXN]; int main(){ memset(dp,0,sizeof(dp)); dp[0]

那些年 804

UVA357 LA5251 Let Me Count The Ways【0/1背包】

After making a purchase at a large department store, Mel’s change was 17 cents. He received 1 dime, 1 nickel, and 2 pennies. Later that day, he was shopping at a convenience store. Again his change wa...

海岛Blog 680

UVA 357 Let Me Count The Ways 完全背包

又是重复问题,LRJ估计要突出这里基础的重要性 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long

Commence,的艰苦历程 437

UVA 485、424、495、324 大整数

题目: 分析:大整数的乘法与加法 推荐算法分析 ”程序员小灰“微信平台 文章。(关注他微信公众号后,点击右上角「…」,再点击「全部消息」,搜索「大整数」,完成) 说明:定定定 c++编写了一个大整数类来解决这些题。当然,大整数类 并不完善,日后继续学习时,找机会完善。 大整数代码 #include <iostream> #include "cstring" #include <s...

hgeeacker的博客 4482
上一篇: UVA 356 Square Pegs And Round Holes
下一篇: UVA 492 Pig-Latin
要身心健康
博客等级 码龄8年 11粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值