1 2 5 10 20 --> 800
用1元 2元 5元 10元 20元的钞票凑成800元的方法种数计算,使用了动态规划。
结果没打出来,只是保留在函数里各个vector中,调试可看所有结果。
优点:快
缺点:占空间占内存
耗时时间测试:
和为200:0.0022153191s
和为800:0.025958383s
和为1600:0.062776931s
和为3200:0.18964779s
下面是详细代码,能正常运行算出结果,改进空间很大,只列了思路。
算法为王,C写的O(n2)函数再快也不如R写的O(nlogn)函数。
void CMFCTestDlg::OnBnClickedBegin()
{
UpdateData(TRUE);
LARGE_INTEGER beginTime;
QueryPerformanceCounter(&beginTime); std::vector<int> vec_1_2(m_nTotal+, -);
for(int i=; i<=m_nTotal; i++)
{
vec_1_2[i] = +i/; // 使用1元 2元纸币组合成 0到m_nTotal 元的方法数
} std::vector<int> vec_1_2_5(vec_1_2.begin(), vec_1_2.end());
for(int i=; i<=m_nTotal; i++)
{
for(int j=; j<=i/; j++)
{
vec_1_2_5[i] += vec_1_2[i-j*]; // 使用1元 2元 5元纸币组合成 0到m_nTotal 元的方法数
}
} std::vector<int> vec_1_2_5_10(vec_1_2_5.begin(), vec_1_2_5.end());
for(int i=; i<=m_nTotal; i++)
{
for(int j=; j<=i/; j++)
{
vec_1_2_5_10[i] += vec_1_2_5[i-j*]; // 使用1元 2元 5元 10元纸币组合成 0到m_nTotal 元的方法数
}
} std::vector<int> vec_1_2_5_10_20(vec_1_2_5_10.begin(), vec_1_2_5_10.end());
for(int i=; i<=m_nTotal; i++)
{
for(int j=; j<=i/; j++)
{
vec_1_2_5_10_20[i] += vec_1_2_5_10[i-j*]; // 使用1元 2元 5元 10元 20元纸币组合成 0到m_nTotal 元的方法数
}
}
//.... 如果有50元 100元等更多要求,在此处依次添加即可,很容易扩展
LARGE_INTEGER endTime;
QueryPerformanceCounter(&endTime); LARGE_INTEGER frequency;
QueryPerformanceFrequency(&frequency); float fTime = (endTime.QuadPart-beginTime.QuadPart)/(float)(frequency.QuadPart);
fTime = ;
}
1 2 5 10 20 --> 800的更多相关文章
- 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换
[源码下载] 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换 作者:webabcd 介 ...
- (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html)WebWork深入浅出
(转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html) WebWork深入浅出 本文发表于<开源大本营> 作者:钱安 ...
- Scrum会议10.20
Scrum会议 组名称:好好学习 项目名称:记账本 参会成员:林莉(Master)胡丽娜 汪东涵 宫丽君 时间:2016.10.20 已完成内容: 1.理解项目和代码. 2.讨论新功能. 计划完成 ...
- 查询数据库:models.Books.objects.all()[10: 20]与models.Books.objects.filter(id__gt=10, id__lt=20).values() 的区别
1. models.Books.objects.all()[10: 20] (10:20 之间是冒号,不是逗号.)查出的是 QuerySet对象,如需进行操作,得进一步进行剥皮. 查询代码: 查询结 ...
- OSC Source Code Innovation Salon(2018.10.20)
时间:2018.10.20地点:北京 朝阳 浦项中心B座2层
- 第8次Scrum会议(10/20)【欢迎来怼】
一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/20 17:20~17:45,总计25min. 地点 ...
- Daily Scrum 10.20
今天进行了团队第一次scrum meeting,在这次会议中,我们针对NABC模型以及开发前期的工作进行了探讨. 第一次会议 主要内容如下: 为了大家接下来几周的开发效率,需要共同商量团队的一些规则 ...
- 2018.10.20 XMYZ Day1总结
上周的忘写了……题目没有作者…… T1.backpack 期望得分100,实际得分100. 感觉我自己真是不如以前了……以前做这种题都是秒掉的,现在怎么想了10分钟啊…… 因为物品的体积和价值都非常小 ...
- Noip模拟81 2021.10.20
T1 语言 比较简单的题,然后就瞎写了,所以考场上就我一个写了线段树的,所以我的常数.... 所以就枚举动词的位置,找前面后面有没有出现$4$即可 1 #include<bits/stdc++. ...
随机推荐
- C# - ADO.Net 调用存储过程
------------------------存储过程调用,创建DataSet:----------------------//数据库连接字符串string connStr = @"Dat ...
- 如何用SQL操作数据------告别标题党
额,首先跟大家道一个歉,由于本人上次利用标题来骗访问,对各位大哥大姐,叔叔阿姨,弟弟妹妹,and舅子老表的时间及流量造成了严重的浪费,本人深表歉意(好吧,其实本人内心还是有那么一丢丢的自豪的,毕竟是一 ...
- 指针和const
将指针参数声明为指向常量数据的指针有两条理由: 这样可以避免由于无意间修改数据而导致的编译错误. 使用const使得函数能够处理const和非const实参,否则将只能接收非const数据. ...
- Qt 之 show,hide,setVisible,setHidden,close 等小结
0QObject::deleteLater()delete obj;析构对象1QWidget::setVisible(bool)使得Widget可见或不可见2QWidget::setHidden(bo ...
- 在网页中使用javascript提供反馈信息
一,使用document.write() 二,使用window方法,prompt(),alert()和confirm() <html lang="en"> < ...
- [LeetCode]题解(python):155-Min Stack
题目来源: https://leetcode.com/problems/min-stack/ 题意分析: 实现一个小的栈,包括初始化,push,pop,top,和getMin. 题目思路: 私用是用两 ...
- vb6.0 时间日期
使用year(now)可以得到4位数的年 你还可以用Format来得到, 还有FormatDateTime 下面两种都是一样的结果: FormatDateTime(now,vbLongDate ...
- c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
题目如下: 思路分析: 写出完整的程序: /* 问题描述: 有n根棍子,棍子i的长度为ai.想要从中选出3根棍子组成周长尽可能长的三角形.请输 出最大的周长,若无法组成三角形则输出0. */ #inc ...
- [原创]抢先DriverStudio夺取机器控制权(下篇)
原文链接:抢先DriverStudio夺取机器控制权(下篇) 上篇仅仅说到如何抢先DriverStudio,并在结尾留给大家一个遐想.现在我进一步拓展这个遐想,从而给大家更多的遐想.: ) 那么现在我 ...
- QT中代码中与设计器中控件信号与SLOT连接(原来还可以这样连接)
双击testqt.ui 托一个push button到窗体中,双击,可以输入字符 按F4或 menu->edit->edit signals/slots 定义SLOT 选择已定义好的SLO ...