贪心算法练习(二)

NOIP2002_T1_均分纸牌

AYYZOJ p1030

COGS p98

分析:见此课件的例7

程序:见NOIP2002 提高组

贪心算法_取数游戏

AYYZOJ p1425

分析:本题可以这样理解,有2n个数,A从开头取的话取第一个,给对手留下的是第2个和第2n个,即对手只能选偶数位的数,A以此法可以取走全部的奇数位的数,同理也可以取走偶数位的数.所以,只要将所有奇数位和偶数位的数比较,大的A选,小的对手选,即可

 1 var
 2   a,n,i,suma,sumb:longint;
 3 begin
 4  readln(n);
 5  for i:=1 to 2*n do
 6   begin
 7    read(a);
 8    if i mod 2=0 then suma:=suma+a
 9                 else sumb:=sumb+a;
10   end;
11  if suma>sumb then
12   begin
13    writeln(suma);
14    writeln(sumb);
15   end         else
16   begin
17    writeln(sumb);
18    writeln(suma);
19   end;
20 end.

参考程序

时间: 2024-10-05 04:25:08

贪心算法练习(二)的相关文章

贪婪法——————贪心算法

华信清明节放假,所以不用去上课,而我又不想出去,所以就用了一点时间去研究算法. 我今天开始看王晓华写的<算法的乐趣>,把它当做教材. 看到贪心算法,因为大一的时候C语言没学好,所以作者写的C实现代码不是看得很懂,但是基本思想还是能够掌握的. 接下来我总结一下我今天学到的贪心算法: 贪心算法是寻找最优解问题的常用方法. 基本思想是分三个步骤: 1.建立对问题精确描述的数学模型,包货定义最优解的模型. 2.将问题分成一系列的子问题,同时定义子问题的最优解结构. 3.应用贪心算法原则可以确定每个子问

贪心算法-跳跃游戏二

给定一个非负整数数组,假定你的初始位置为数组第一个下标. 数组中的每个元素代表你在那个位置能够跳跃的最大长度. 你的目标是到达最后一个下标,并且使用最少的跳跃次数. 例如: A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为 2.(先跳跃 1 步,从下标 0 到 1,然后跳跃 3 步,到达最后一个下标.一共两次) 输入格式 第一行输入一个正整数 n(1≤n≤100) ,接下来的一行,输入 n 个整数,表示数组 A. 输出格式 最后输出最少的跳跃次数. 样例输入 5 3 1 1 1 1

贪心算法基础(二)

今天我们还是讲贪心算法.题目是:将一个真分数表示成若干个埃及分数的和.啥是埃及分数?例如:1/2这就是埃及分数,也就是分子为1的分数.例如:7/8=1/2+1/3+1/24. 那么怎么实现这个呢? 因为是加法运算,所以我们通过一项项的"拆项"来实现. 1.找出最大的埃及分数,使得f>1/n. 2.输出1/n. 3.f=f-1/n. 4.如果f是埃及分数则完成,否则继续第一步. 但是先要注意,高级语言不支持分数的运算,所以表示分数我们只能分别输入分子和分母.设分子是A,分母是B.则

POJ1017 Packets(贪心算法训练)

Time Limit: 1000MS          Memory Limit: 10000K          Total Submissions: 51306          Accepted: 17391 Description A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These pro

算法导论——lec 13 贪心算法与图上算法

之前我们介绍了用动态规划的方法来解决一些最优化的问题.但对于有些最优化问题来说,用动态规划就是"高射炮打蚊子",采用一些更加简单有效的方法就可以解决.贪心算法就是其中之一.贪心算法是使所做的选择看起来是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解. 一. 活动选择问题 [问题]对几个互相竞争的活动进行调度:活动集合S = {a1, a2, ..., an},它们都要求以独占的方式使用某一公共资源(如教室),每个活动ai有一个开始时间si和结束时间fi ,且0 ≤ si &

贪心算法

一,贪心算法的设计思想 ? 从问题的某一个初始解出发逐步逼近给定的目标,每一步都作一个不可回溯的决策,尽可能地求得最好的解.当达到某算法中的某一步不需要再继续前进时,算法停止. 二,贪心算法的基本性质 1)贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到.这是贪心算法可行的第一个基本要素,也是贪心法与动态规划法的主要区别. 2) 最优子结构性质 该问题解的整体最优性依赖于其局部子问题解的最优性.这种性质是可以采用贪心算法解决问题的关键特征.例如

贪心算法-----单线程:活动安排问题 多线程:多机调度问题

一.贪心算法的特点 顾名思义,贪心算法总是做出在当前看来是最好的选择.虽然贪心算法并不从整体最优上加以考虑,它所做出的选择只是在某种意义上的局部最优选择. 贪心算法的优点是更简单,更直接且解题效率更高,即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好的近似解. 二.贪心算法的理解 由于涉及到在做出在当前看来最好的选择,所以会经常采用排序算法,推荐使用快速排序算法,复杂度是O(nlgn),且在同等复杂度算法中效率是最高的, 本文涉及的排序都采用冒泡排序,只是注明需要排序而已. 贪心算法

hdu 4040 (贪心算法)

这题是我们学校比赛的题目,因为当时参加精英组比赛,除了3个大二的其他都是大三大四的大神,就抱着打酱油的心态去了,结果真的打酱油了; 事后看看题目,确实有些题目以当前水平是可以做出来的,原因应该是 心态 以及 时间分配上的问题. 这题一直卡在题目什么意思上,还有一题 求前K大数的,那题最后想到用堆,但是不会写- -,忘了优先队列这个东西.所以很遗憾啊.. 总而言之就是会的东西太少了哈...还需要好好加油; 这题的意思就是说每个细胞每秒只能产生一个噬菌体,无论这个细胞里面有多少噬菌体,然后攒齐一定数

贪心算法总结——读书笔记

1.基本概念 贪心算法是一种求解组合优化问题的算法设计技术,其求解过程由一系列决策构成, 每一步决策仅依赖于某种局部优化的性质. 与动态规划算法不同,贪心算法在做决策时候不必考虑所有子问题的选择结果. 贪心算法适用的条件 问题的求解可以由一系列的决策步骤构成,每步决策依赖于某种局部最优的贪心策略.正确的贪心策略要保证每一步基于局部优化性质的选择最终导致全局的最优解. 如果不具有上述性质,贪心法对某些实例只能得到近似解. 主要设计步骤: 将问题的求解看作是一系列的决策: 确定每一步决策所依据的局部