[CCF1034]钞票兑换

题目描述

将任意给定的整百元钞票,兑换成10元、20元、50元小钞票形式。输出兑换方案总数。

输入

输入需要兑换的钞票总数n。

输出

输出方案总数。

样例输入

100

样例输出

10

数据范围限制

100<=n<=1000000


常规0

#include <stdio.h>
#include <stdlib.h>
int main(){
    int i,a,b,c,sum=0;
    scanf("%d",&i);
    for(a=0;a<=i/50;a++){
        for(b=0;b<=i/20;b++){
            for(c=0;c<=i/10;c++){
                if(a*50+b*20+c*10==i){
                    sum++;
                }
            }
        }
    }
    printf("%d",sum);
    return 0;
}

穷举法很容易想到,只要让3个整数挨个穷举就可以了。
虽然还可以在循环范围上进行优化,不过那在接下来的改进面前算不了什么。
但是因为数据范围的问题,会超时TLE,不得不让我们动起了歪脑筋(可能在大佬中就是正常思路)。
为了在文中方便讨论,代码中的i文中变成100i

改进1

因为题目的数据十分友善,可以利用一下。
数学点的描述:50a+20b+10c=100i(a,b,c,iN)50a+20b+10c=100i(a,b,c,i∈N)
看c好欺负:c=10i5a2bN<

### 关于 CCF CSP 模拟认证兑换码获取方式 根据当前的信息显示,CCF-CSP 的模拟认证确实需要通过兑换码来激活使用[^1]。每次报名参加正式的 CSP 认证考试时,会获得一个对应的兑换码,该兑换码仅能用于一次模拟测试。这意味着如果希望多次参与模拟练习,则需多次报名正式考试以获取更多的兑换码。 对于那些希望通过频繁模拟提升成绩的学习者而言,这一政策可能带来不便。然而目前官方并未提供其他途径可以绕过此限制而实现无限次免费模拟。因此建议合理规划自己的备考节奏,在有限次数内最大化利用每一次模拟机会。 另外值得注意的是,虽然直接重复进行完全相同的整套试卷形式受到上述条件约束,但仍可通过其它方法加强训练效果。比如访问 CCFCSP 官网 (cspro.org),按照指引注册账户后可进入在线题库部分单独练习各类算法题目[^2]。这种方式虽不同于完整的模拟环境设置,但对于熟悉考点、提高解题技巧仍然非常有效。 此外还有许多第三方平台提供了基于历史真题改编后的专项练习资源以及仿真实战模式供考生选择尝试[^3]。这些补充手段能够在一定程度上弥补因缺乏额外官方授权模拟而导致的经验不足问题。 ```python # 示例代码展示如何连接到某个假设中的练习网站API接口获取每日一练数据(虚构情景) import requests def fetch_daily_practice(): url = 'https://example-practice-api.com/daily' response = requests.get(url) if response.status_code == 200: data = response.json() return data['question'], data['options'] else: raise Exception('Failed to load daily practice') try: question, options = fetch_daily_practice() print(f'Today\'s Practice Question:\n{question}') except Exception as e: print(e) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值