自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 第五周测试总结

一、贪心算法:贪心算法,又名贪婪法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解。基本思路:建立数学模型来描述问题; 把求解的问题分成若干个子问题; 对每一子问题求解,得到子问题的局部最优解; 把子问题的解局部最优解合成原来解问题的一个解。算法实现:从问题的某个初始解出发。 采用循环语句,当可以向求解目标前进一步时,就根据局部最

2022-04-17 01:15:51 63

原创 第五周练习总结

Dijkstra算法:Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。要点:每次从 「未求出最短路径的点」中取出 距离距离起点最小路径的点,以这个点为桥梁刷新「未求出最短路径的点」的距离思路:Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s 的路径权重被赋为 0 (di.

2022-04-15 16:11:43 763

原创 第四周测试总结

暴力枚举法:枚举就是列出一个范围内的所有成员的程序,或者说是将所有情况都举出,并判断其是否符合题目条件,生活中常见的枚举有星期,里面有星期一、星期二... ...星期日... ...枚举也称作暴力求解,穷举法。在C++里面最常见的枚举就是数组的for循环,这种循环就是把数组中的每一个元素都列举一遍。枚举的优缺点优点:1.能举出所有情况,保证解为正确解。2.能解决许多用其他算法难以解决的问题。3.便于思考与编程。缺点:为何要叫做暴力枚举呢?因为暴力出奇迹,但是暴力在大多数情况下都是不可取

2022-04-10 22:30:26 211

原创 第四周练习总结

贪心算法:本周的练习主要针对贪心算法,又名贪婪法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解。贪心算法的基本步骤:步骤1:从某个初始解出发;步骤2:采用迭代的过程,当可以向目标前进一步时,就根据局部最优策略,得到一部分解,缩小问题规模;步骤3:将所有解综合起来。贪心算法使用的问题:贪心策略适用的前提是:局部最优策略能导致产生全局.

2022-04-08 23:54:48 74

原创 第三周测试总结

1、二分查找在本次测试中,用到了二分查找。起初对于该题目的算法还不了解,经过查询得知,该题需要用到二分查找。适用场景:二分查找算法仅适用于有序序列,它只能用在升序序列或者降序序列中查找目标元素以升序数列为例,比较一个元素与数列中的中间位置的元素的大小,如果比中间位置的元素大,则继续在后半部分的数列中进行二分查找;如果比中间位置的元素小,则在数列的前半部分进行比较;如果相等,则找到了元素的位置。每次比较的数列长度都会是之前数列的一半,直到找到相等元素的位置或者最终没有找到要找的元素。我们先

2022-04-01 22:03:37 206

原创 第二次练习总结

本周的测试主要针对查找算法进行练习。1、素数筛法:素数筛法是一种快速“筛”出2~n之间所有素数的方法。如:我们把2~n的数按顺序写出来:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16从前往后看,找到第一个未被划掉的数,2,这说明它是质数。然后把2的倍数(不包括2)划掉后得到:2 3 5 7 9 11 13 15下一个未被划掉的数是3,它是质数,把3的倍数划掉后得到:2 3 5 7 11 1...

2022-03-25 21:10:37 1011

原创 H106OJ | P1003

P1003Description作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词。不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检查。请编写一个程序,发现这种调整过顺序的关键词。程序的输入有两行,第一行是关键词列表,第二行是待检查的句子。程序的输出为在该句子中所找到的经过顺序调整的关键词。(单词全部为小写,单词之间以一个空格分隔,每一行的单词个数不限)Input第一行是关键词列表,第二行是待检查的句子。Output经过顺序调整的关键词。(

2022-03-25 17:05:58 76

原创 H206OJ | 子集选取

子集选取Description一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为K,求取法的方案数,答案模1000000007。Input输入一行两个整数N,KOutput输出一个整数表示答案。Sample Input 13 2Sample Output 16HintHINT:时间限制:1.0s 内存限制:256.0MB1 <= K <= N &lt

2022-03-25 16:23:53 79

原创 H106OJ | 找素数

找素数Description给定区间[L, R] , 请计算区间中素数的个数。Input两个数L和R。Output一行,区间中素数的个数。Sample Input 12 11Sample Output 15HintHINT:时间限制:1.0s 内存限制:256.0MB2 <= L <= R <= 2147483647 R-L <= 1000000AC代码:#include<cstdio>#in

2022-03-25 12:41:01 45

原创 H106OJ | 凶手

凶手Description巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:A:我不是罪犯B:A、C中有一个是罪犯C:A和B说了假话D:C和F说了假话E:其他五个人中,只有A和D说了真话F:我是罪犯他们中只有一半说了真话,凶手只有一个。本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多个,但每一个可能的答案(某一个是凶手)都满足上述口供。请编程找出可能的凶手输出。样例:(假设唯一的凶手是A或者D或者E,则输出结果为三行,按字母顺序依次输出)AD

2022-03-25 01:01:45 79

原创 H106OJ | 幸运数

幸运数Description幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。首先从1开始写出自然数1,2,3,4,5,6,....1 就是第一个幸运数。我们从2这个数开始。把所有序号能被2整除的项删除,变为:1 _ 3 _ 5 _ 7 _ 9 ....把它们缩紧,重新记序,为:1 3 5 7 9 .... 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17,

2022-03-25 00:36:40 69

原创 第一次练习总结

本周的测试主要针对排序算法进行练习。1、冒泡排序:1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。2)每趟从第一对相邻元素开始,对每一对相邻元素作同样的工作,直到最后一对。3)针对所有的元素重复以上的步骤,除了已排序过的元素(每趟排序后的最后一个元素),直到没有任何一对数字需要比较。例:(图源网络)冒泡排序的原理:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1

2022-03-20 22:20:07 995

原创 H106OJ | 冒泡排序计数

冒泡排序计数Description考虑冒泡排序的一种实现。bubble-sort (A[], n)> round = 0> while A is not sorted> > round := round + 1> > for i := 1 to n - 1> > > if (A[i] > A[i + 1])> > > > swap(A[i], A[i + 1])求1 .. n的排列

2022-03-20 21:06:05 354 1

原创 H106OJ | 士兵排队问题

士兵排队问题Description有N个士兵(1≤N≤26),编号依次为A,B,C,…,队列训练时,指挥官要把一些士兵从高到矮一次排成一行,但现在指挥官不能直接获得每个人的身高信息,只能获得“P1比P2高”这样的比较结果(P1、P2∈A,B,C,…,Z,记为 P1>P2),如”A>B”表示A比B高。请编一程序,根据所得到的比较结果求出一种符合条件的排队方案。(注:比较结果中没有涉及的士兵不参加排队)Input比较结果从文本文件中读入(文件由键盘输入),每个比较结果

2022-03-20 20:59:02 319

原创 H106OJ | 身份证排序

身份证排序Description安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位Input第一行一个整数n,表示有n个身份证号码余下的n行,每行一个身份证号码。Output按出生日期从大到小排序后的身份证号,每行一条Sample Input 15466272307503271156215856472207097978234804

2022-03-20 15:35:11 115

原创 H106OJ | 前10名

前10名Description数据很多,但我们经常只取前几名,比如奥运只取前3名。现在我们有n个数据,请按从大到小的顺序,输出前10个名数据。Input两行。第一行一个整数n,表示要对多少个数据第二行有n个整数,中间用空格分隔。表示n个数据。Output一行,按从大到小排列的前10个数据,每个数据之间用一个空格隔开。Sample Input 12654 27 87 16 63 40 40 22 61 6 57 70 0 42 11 50 13 5 56

2022-03-20 15:08:22 252

原创 H106OJ | 班级排名

班级排名Description达达在陶陶的影响下,也对学习慢慢的产生了兴趣。他在每次考试之后,都会追着老师问,自己在班级的总名次是多少。考试一多,老师也不耐烦了,于是他给了达达所有人的成绩,让他自己去算出自己的排名。可人太多了,达达也无法立即算出来,于是他想让你帮帮他。Input第一行为一个整数N,代表班级的学生总数。接下来N行,每行一个字符串,代表一个学生的姓名,第一行总是DaDa。接下来一行一个整数M,代表一共有M次考试。每次考试有N行,每行有以一个空格分隔的

2022-03-20 15:02:38 121

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除