ACM算法ACM算法

上传人:兰*** 文档编号:198054177 上传时间:2021-09-27 格式:DOC 页数:3 大小:27KB
返回 下载 相关 举报
ACM算法ACM算法_第1页
第1页 / 共3页
ACM算法ACM算法_第2页
第2页 / 共3页
ACM算法ACM算法_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《ACM算法ACM算法》由会员分享,可在线阅读,更多相关《ACM算法ACM算法(3页珍藏版)》请在金锄头文库上搜索。

1、ACM算法ACM算法经典ACM算法合集经典ACM算法合集 经典ACM算法合集经典ACM算法合集.t_t“我羡慕内些老人羡慕他们手牵手一直走到最后。交话费的时候,才发现自己的话那么值钱。实验一 统计数字问题 实验二 最大间隙问题 实验三 众数问题 实验四 半数集问题 实验五 集合划分问题 实验六 最少硬币问题 实验七 编辑距离问题 实验八 程序存储问题 实验九 最优服务次序问题 实验十 汽车加油问题 实验十一 工作分配问题 实验十二 0-1背包问题 实验十三 最小重量机器设计问题 实验十四 最小权顶点覆盖问题 实验十五 集合相等问题 实验十六 战车问题 实验一 统计数字问题 1、问题描述: 一本

2、书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,9。 2、题目分析: 考虑由0,1,2,9组成的所有n位数。从n个0到n个9共有个n位数,在这些n位数中,0,1,2,,9每个数字使用次数相同,设为。 满足如下递归式:由此可知,。 据此,可从低位向高位进行统计,再减去多余的0的个数即可。 3、算法设计: 定义数组a10存放0到9这10个数出现的次数,个位为第0位,第j位的数字为r。采用while循

3、环从低位向高位统计: a. 统计从个位算起前j位0_9个数; b. 如果j+1位为0,去掉第j+1位补0个数; c. 统计第j+1位出现1_(r-1)个数; d. 统计第j+1位出现r个数。 4、源程序:_include _lt;iostream.h_gt; int main() long int sn10; int i,n,c,k,s,pown; for(i=0;i_lt;10;i+) sni=0; cin_gt;_gt;n; for(k=s=0,pown=1;n_gt;0;k+,n/=10,pown_=10) c=n%10; for(i=0;i_lt;10;i+) sni+=c_k_(po

4、wn/10); for(i=0;i_lt;c;i+) sni+=pown; snc+=1+s; sn0 -=pown; s+=c_pown; for(i=0;i_lt;10;i+) cout_lt;_lt;sni_lt;_lt;n; 5、算法分析: 函数count()的复杂度为O(1),主函数调用count(),故该算法的时间复杂度为O(1)。 实验二 最大间隙问题1、问题描述: 最大间隙问题:给定n 个实数_1 , _2 ,. , _n,求这n 个数在实轴上相邻2 个数之间的最大差值。假设对任何实数的下取整函数耗时O(1),设计解最大间隙问题的线性时间算法。 对于给定的n 个实数_1 , _2 ,. , _n,编程计算它们的最大间隙。2、题目分析: 考虑到实数在实轴上按大小顺序排列

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号