安利一波答案 经典算法设计

 

1、键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。输入数据均不需判错。输出应包括所去掉的数字的位置和组成的新的正整数(N不超过240位)

算法分析:将N存在字符串中,模拟数据运算。

算法设计:若高位高于地位则删除高位,由前往后去除S位。若遍历字符串后删除位数小于S则删去最末尾几位,直到满足删除S的条件,同时输出前去除首位的0。

代码:

Hide:

1.string.erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符;

2.string.find_first_not_of(char);返回字符串第一个不是char的值的位置;


2、某单位给每个职工发工资(精确到元)。为了保证不要临时兑换零钱, 且取款的张数最少,取工资前要统计出所有职工的工资所需各种币值(100,50,20,10,5,2,1元共七种)的张数。请编程完成。

算法分析:建立员工工资类,各种币值设置为静态成员。

算法设计:分别为每个员工求出各种币值的张数再求和。

代码:

 


3、有形如下图所示的一个数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的数值和最大。

9

12    15

10     6      8

2    18      9    5

19     7     10    4   16

算法分析:二位数组储存数塔。

算法设计:由倒数第二层开始往上层更新节点为由这个点到底部的最大值,塔尖得数为答案。

代码:

相关日志

  1. 2016.05.11

    ZOJ 3702 Gibonacci number

    题目地址:http://acm.zju.ed…

  2. 2016.07.10

    Codeforces Round #361 (Div. 2)A. Mike and Cellphone

    果然CF是三亿coder的coding梦想(…

  3. 2016.07.10

    Codeforces Round #361 (Div. 2)B. Mike and Shortcuts

    题意迷之简短。大意就是:一个城市i到另一个城…

  4. 2016.06.18

    竞赛技巧:读取一行到string类

    string类中定义了getline函数; …

  5. 2016.05.09

    FZU 2091 播放器

    题目地址:http://acm.fzu.ed…

  6. 2016.05.04

    FZU 2041 checker(搜索)

    题目链接:http://acm.fzu.ed…

评论

还没有评论。

在此评论中不能使用 HTML 标签。