首页 > 其他分享 >警钟长鸣-----找零钱

警钟长鸣-----找零钱

时间:2023-05-28 20:11:59浏览次数:34  
标签:20 int 票子 dfs 警钟长鸣 零钱 ----- st id

蒟蒻的我在这个题上花了40分钟还超时了(悲

不说了先上超时的代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int res,n,a[]={1,2,5,10,20,50,100},x;
 4 void dfs(int st,int num,int id)
 5 {
 6     if(st==0){res++;return;}
 7     if(st<0||num>100||id>6) return;
 8     dfs(st-a[id],num+1,id);
 9     dfs(st,num,id+1);
10 }
11 int main()
12 {
13     while(cin>>n&&n!=0)
14     {
15         res=0,x=6;
16         //for(int i=0;i<=6;i++) if(a[i]>=n) {x=i;break;} 
17         dfs(n,1,0);
18         cout<<res<<endl;
19     }
20     return 0;
21 }

 

简单的dfs,唉,没想到还是要动态规划,动态规划写的很详细,可以仔细理解一下

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[251][102][8],a[]={1,2,5,10,20,50,100},n;//a是每张票子的额度
 4 //f有三个状态,表示i元时,用j次钞票,并且i,j的时候用的a[k]的价值,此时的最大值
 5 int main()
 6 {
 7     //先准备好所有的状态,然后输入一次输出一次,简化时间;
 8     for(int i=0;i<7;i++) f[a[i]][1][i]=1;//初始化
 9     for(int i=1;i<=250;i++)
10     {
11         for(int j=1;j<=i&&j<101;j++)//条件判断
12         {
13             for(int k=6;k>=0;k--)//枚举六张票
14             {
15                 if(i>a[k])//如果i元能被这张票子加上去
16                     for(int l=k;l>=0;l--)//看看能不能被别的票子加上去
17                         f[i][j][k]+=f[i-a[k]][j-1][l];//更新状态
18                         //这时最大值时是由上一次被使用的票子,然后用每一张票的情况
19                         //可能会有点难理解,通俗点就是,i元之前,是i-a[k]元
20                         //f[i-a[k]][j-1][l]是i-a[k]元的所有情况
21                 f[i][j][7]+=f[i][j][k];//更新状态
22             }
23             f[i][101][0]+=f[i][j][7];//更新状态
24         }
25     }
26     while(cin>>n&&n!=0) cout<<f[n][101][0]<<endl;
27     return 0;
28 }

 

 

标签:20,int,票子,dfs,警钟长鸣,零钱,-----,st,id
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17438752.html

相关文章

  • Linux - sshpass的安装与使用
     ssh登陆不能在命令行中指定密码,sshpass的出现则解决了这一问题。它允许你用-p参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。 1、安装[root@node1home]#wgethttp://sourceforge.net/projects/sshpass/files/sshpass/1.05/ssh......
  • Doris(三) -- 索引
    索引索引用于帮助快速过滤或查找数据。目前Doris主要支持两类索引:• 内建的智能索引:包括前缀索引和ZoneMap索引。• 用户创建的二级索引:包括BloomFilter索引和Bitmap倒排索引。其中ZoneMap索引是在列存格式上,对每一列自动维护的索引信息,包括Min/Max,Null值个数等......
  • redis操作-RedisTemplate保存和获取数据
    publicResultsendCode(@PathVariableStringphone){//从redis中获取验证码,如果获取到,返回ok//redis的key为手机号value为验证码Stringcode=redisTemplate.opsForValue().get(phone);if(!StringUtils.isEmpty(code)){ret......
  • Mybatis-plus中自定义的sql语句调用QueryWrapper实现查询
     一、引言MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么今天说说MP怎么自定义sql语句吧。 二、具体实现使用注解实现:在我们Mapper接口中定义自定义方法即可。/***@Date:2019/6/1014:40*@Description</span>:User对象持久层*/p......
  • Appium自动化(16):Appium常用操作之H5页面操作 --待补充!
    手机chrome浏览器操作:手机端chrome浏览器一般用于打开H5手机版网站,它的操作方式与PC端的浏览器操作(即selenium对浏览器的操作)是一模一样的,由于切换后的WebView页面也属于网页下述的方法中部分支持在webview页面中使用:1、get(self,url):打开网站,url参数为url地址,必须包含http/h......
  • 2023商业银行大零售数字化转型白皮书-中电金信
    2023商业银行大零售数字化转型白皮书-中电金信......
  • smart-doc加Torna实现文档管理
    介绍smart-doc+Torna组成行业领先的文档生成和管理解决方案,使用smart-doc无侵入完成Java源代码和注释提取生成API文档,自动将文档推送到Torna企业级接口文档管理平台。使用配置数据库mysql.sql安装Tornadockerpulltanghc2020/torna:1.20.0wgethttps://gitee.com/durc......
  • 数论-裴蜀定理-扩展欧几里得算法
    裴蜀定理对于任意的整数a、b,都存在一对整数x、y(注意x和y可以是负整数),使得\(ax+by=gcd(a,b)\)成立。或者可以这样描述:对方程\(ax+by=c,(a,b,c∈Z)\),只有满足\(gcd(a,b)|c\)(即a和b的最大公约数可以整除c),方程才有整数解。扩展欧几里得算法的证明已知\(gcd(a,b)=gcd(b,a\%b)\)......
  • 发布-配置build命令
    配置webpack的打包发布在package.json文件的scripts节点下,新增build命令如下:"scripts":{"dev":"webpackserve",//开发环境中,运行dev命令"build":"webpack--modeproduction"//}--mode是一个参数项,用来指定webpack的运行模式。production代表生产环境......
  • kubernetes重新初始化“[ERROR DirAvailable--var-lib-etcd]”
    [root@master01~]#kubeadminit--config/root/kubeadm-config.yaml--upload-certs[init]UsingKubernetesversion:v1.23.0[preflight]Runningpre-flightcheckserrorexecutionphasepreflight:[preflight]Somefatalerrorsoccurred:[ERRORDirAvailable--......