自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《算法笔记》第1-3章基础知识

文章目录知识点1. 输入、输出2. 小技巧2.1 c++的引用2.2 结构体的构造函数2.3 浮点数的比较2.4 判断大数的奇偶性3. 函数相关3.1 一般函数3.2 rand()函数3.3 c++的sort函数知识点1. 输入、输出scanf 除 %c 以外,其他输入以空格或换行符为结束判断标志。double 输入 %lf 输出 %f%d默认左对齐 %md m位右对齐 %-md m位左对齐 %0md 以0补齐2. 小技巧2.1 c++的引用void chan

2022-05-03 18:48:45 662

原创 问题 A: 求最长公共子串(串)

求采用顺序结构存储的串s和串t的一个最长公共子串,若没有则输出false,若最长的有多个则输出最先出现的那一串。

2022-09-05 14:01:12 277 1

原创 问题 H: 最大报销额

首先要按照题目的要求计算后判断每张发票的有效性,接着是一个动态规划算法(没见过类似题目的同学可以搜一下“背包问题”),对于此题,由于题目交代了所有金额都只到小数点后两位,因此乘以100后即是整数,从而可以转化为01背包问题,用dp[i]表示到达总金额为i的有效性。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。

2022-09-03 17:23:30 234

原创 问题 G: 点菜问题

北大网络实验室经常有活动需要叫外买,但是每次叫外买的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。输入的第一行有两个整数C(1

2022-09-02 23:17:07 185

原创 问题 F: 放苹果

即if(n>m) f(m,n) = f(m,m)1

2022-09-02 22:55:28 284

原创 问题 E: 最大子矩阵

再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。输入是一个N * N的矩阵。输入的第一行给出N (0 < N

2022-09-02 22:21:48 49

原创 问题 D: Coincidence

【代码】问题 D: Coincidence。

2022-09-01 13:53:19 48

原创 问题 C: 合唱队形

K,他们的身高分别为T1, T2, …第一行有n个整数,用空格分隔,第i个整数Ti(130

2022-09-01 13:46:54 205

原创 问题 B: 拦截导弹

某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。每组输入有两行,第一行,输入雷达捕捉到的敌国导弹的数量k(k...

2022-09-01 13:21:25 86

原创 问题 A: 第二题

一个数组中有若干正整数,将此数组划分为两个子数组,使得两个子数组各元素之和a,b的差最小,对于非法输入应该输出ERROR。降序输出两个子数组的元素和。

2022-08-31 22:55:28 79

原创 问题 C: 货币系统

举例来说, 使用一个货币系统 {1,2,5,10,…}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。V+1行: 可用的货币 V 个整数 (每行一个 每行没有其它的数)。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。单独的一行包含那个可能的构造的方案数。...

2022-08-14 15:29:31 105

原创 问题 B: 采药

医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。接下来的M行每行包括两个在1到100之间(包括1和100)的整 数,分别表示采摘某株草药的时间和这株草药的价值。辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。一个整数,表示在规定的时间内,可以采到的草药的最大总价值。T代表总共能够用来采药的时间,M代表山洞里的草药的数目。对于全部的数据,M ...

2022-08-13 15:59:42 63

原创 问题 A: 装箱问题

有一个箱子的容量为V(V为正整数,且满足0≤V≤20000),同时有n件物品(0的体积值为正整数。:1行整数,第1个数表示箱子的容量,第2个数表示有n件物品,后面n个数分别表示这n件。要求从n件物品中,选取若干装入箱内,使箱子的剩余空间最小。:1个整数,表示箱子剩余空间。...

2022-08-13 15:56:00 138

原创 问题 A: 矩形嵌套

有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a

2022-08-13 14:18:39 140

原创 《算法笔记》第4章常用技巧及排序算法

原理是把一个元素key通过散列函数H转换为H(key)。最常见的散列法:把key作为数组下标。散列函数:直接定址法,平方取中法,除留余数法。解决冲突的方法:线性探测法,平方探测法,链地址法。字符串hash:把26个字母看做26进制(0~25)的数,将26进制转换为10进制,如BCD看做731。2.2 n皇后问题2.3 回溯法优化n皇后问题3. 贪心局部最优推全局最优。N个开区间,选择尽可能多的开区间,使这些开区间两两没有交集。4. 二分4.1 二分查找严格单调递增数列中查找元素查找第

2022-06-07 21:03:49 142

原创 如何解决Python中的RuntimeWarning: invalid value encountered in double_scalars问题

问题背景:在运行《深度学习入门》第六章batch_norm_test.py文件时遇到了以下的警告RuntimeWarning: overflow encountered in squareweight_decay += 0.5 * self.weight_decay_lambda * np.sum(W**2)RuntimeWarning: invalid value encountered in double_scalarsweight_decay += 0.5 * self.weight_d

2022-05-04 00:46:17 3646

原创 《算法笔记》第5章数学问题

文章目录数学问题1. 数字与数组相互转化2. 进制转换2.1 P进制转换为十进制2.2 十进制转换为Q进制2.3 [大数进制转换(10进制以内)](https://blog.csdn.net/zxc0074869/article/details/115267547)2.4 [大数进制转换(超过10进制)](https://blog.csdn.net/zxc0074869/article/details/122393103)3. 最大公约数与最小公倍数4. 分数的四则运算4.1 分数的表示4.2 分数的化简4

2022-05-03 19:48:53 1164

原创 《算法笔记》第4章排序算法

文章目录排序算法1. 冒泡排序2. 选择排序3. 插入排序4. 归并排序4.1 二路归并(递归)4.2 二路归并(非递归)4.3 用sort函数替代merge实现5. 快速排序5.1 总是以A[left]为主元5.2 随机主元排序算法1. 冒泡排序void bubbleSort(int arr[], int n) { int flag = 0; //标记本轮是否发生元素交换 for (int i = 1; i <= n - 1; i++) { for (int j

2022-05-03 19:36:16 164

原创 《算法笔记》第4章常用技巧

文章目录常用技巧1. 散列2. 递归2.1 全排列问题2.2 n皇后问题2.3 回溯法优化n皇后问题3. 贪心3.1 简单贪心3.2 区间贪心4. 二分4.1 二分查找4.2 二分法拓展(以求根号2近似值为例)4.3 快速幂5. two pointers(双指针)5.1 求递增数列中的A+B=M5.2 序列合并问题5.3 [归并排序](#归并排序)5.4 [快速排序](#快速排序)6. 打表7. 活用递推8. 随机选择算法常用技巧1. 散列原理是把一个元素key通过散列函数H转换为H(key)。最常

2022-05-03 19:33:42 246

原创 问题 A: 【字符串】最长回文子串

题目描述输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同。如abba和yyxyy。在判断回文时,应该忽略所有标点符号和空格,且忽略大小写,但输出应保持原样(在回文串的首部和尾部不要输出多余字符)。输入字符串长度不超过5000,且占据单独的一行。应该输出最长的回文串,如果有多个,输出起始位置最靠左的。输入一行字符串,字符串长度不超过5000。输出字符串中的最长回文子串。样例输入Confuciuss say:Madam,I'm A

2022-05-03 18:06:03 255

原创 问题 A: 最长公共子序列

题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。输出对于每组输入,输出两个字符串的最长公共子

2022-05-03 15:13:34 145

原创 问题 A: 最长上升子序列

题目描述一个数列ai如果满足条件a1 < a2 < … < aN,那么它是一个有序的上升数列。我们取数列(a1, a2, …, aN)的任一子序列(ai1, ai2, …, aiK)使得1 <= i1 < i2 < … < iK <= N。例如,数列(1, 7, 3, 5, 9, 4, 8)的有序上升子序列,像(1, 7), (3, 4, 8)和许多其他的子序列。在所有的子序列中,最长的上升子序列的长度是4,如(1, 3, 5, 8)。现在你要写一个程序,

2022-05-03 14:43:08 77

原创 问题 A: 最大连续子序列

题目描述给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。现在增加一个要求,即还需要输出该子序列的第一个和最后一个元素。输入测试输入包含若干测试用例,每个测试用例占2行,第1行给出正整数K( K<

2022-05-03 00:56:20 52

原创 问题 A: Fibonacci

题目描述The Fibonacci Numbers{0,1,1,2,3,5,8,13,21,34,55…} are defined by the recurrence:F0=0 F1=1 Fn=Fn-1+Fn-2,n>=2Write a program to calculate the Fibonacci Numbers.输入Each case contains a number n and you are expected to calculate Fn.(0<=n<=30)

2022-05-02 23:34:36 110

原创 问题 A: 关键路径

题目描述描述:图的连接边上的数据表示其权值,带权值的图称作网。上图可描述为顶点集为(a,b,c,d,e)边集及其权值为(始点,终点 权值):a b 3a c 2b d 5c d 7c e 4d e 6网的源点是入度为0的顶点,汇点是出度为0的顶点。网的关键路径是指从源点到汇点的所有路径中,具有最大路径长度的路径。上图中的关键路径为a->c->d->e,其权值之和为关键路径的长度为15。本题的要求是根据给出的网的邻接矩阵求该网的关键路径及其长度。输入第一行输入一

2022-04-18 00:10:38 229

原创 问题 C: Legal or Not

题目描述ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many “holy cows” like HH, hh, AC, ZT, lcc, BF, Qinz and so on chat on-line to exchange their ideas. When someone has quest

2022-04-17 15:44:33 58

原创 问题 B: 确定比赛名次

题目描述有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。输入输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。

2022-04-17 15:19:02 193

原创 问题 A: 算法7-12:有向无环图的拓扑

题目描述由某个集合上的一个偏序得到该集合上的一个全序,这个操作被称为拓扑排序。偏序和全序的定义分别如下:若集合X上的关系R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。设R是集合X上的偏序,如果对每个x,y∈X必有xRy或yRx,则称R是集合X上的全序关系。由偏序定义得到拓扑有序的操作便是拓扑排序。拓扑排序的流程如下:1. 在有向图中选一个没有前驱的顶点并且输出之;2. 从图中删除该顶点和所有以它为尾的弧。重复上述两步,直至全部顶点均已输出,或者当前图中不存在无前驱的顶点为止。后一

2022-04-17 13:39:06 114

原创 问题 B: Freckles

题目描述In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of the Liberty Bell. Alas, one of the freckles turns out to be a scar, so his Ripley’s engagement falls through.Consider Dick’s back to b

2022-04-16 20:53:30 386

原创 问题 E: Jungle Roads

题目描述The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentlessly, so the large road network is too expensive to maintai

2022-04-16 20:25:23 68

原创 问题 D: 继续畅通工程

题目描述省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。输入测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的

2022-04-16 01:45:06 75

原创 问题 C: 畅通工程

题目描述省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。输入测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到

2022-04-15 20:39:17 77

原创 问题 A: 还是畅通工程

题目描述某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。当N为0时,输入结束,该用例不

2022-04-15 20:29:40 65

原创 问题 D: 最短路径

题目描述有n个城市m条道路(n<1000, m<10000),每条道路有个长度,请找到从起点s到终点t的最短距离和经过的城市名。输入输入包含多组测试数据。每组第一行输入四个数,分别为n,m,s,t。接下来m行,每行三个数,分别为两个城市名和距离。输出每组输出占两行。第一行输出起点到终点的最短距离。第二行输出最短路径上经过的城市名,如果有多条最短路径,输出字典序最小的那条。若不存在从起点到终点的路径,则输出“can’t arrive”。样例输入3 3 1 31 3 31

2022-04-15 16:09:09 187

原创 问题 C: 最短路径

题目描述N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离。输入第一行两个正整数N(2<=N<=100)M(M<=500),表示有N个城市,M条道路,接下来M行两个整数,表示相连的两个城市的编号。输出N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出。样例输入4 30 11 22 0样例输出13-1思路:由于21+22+......

2022-04-14 17:57:14 209

原创 问题 E: 最短路径问题

题目描述给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。输入输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点t。n和m为0时输入结束。(1<n<=1000, 0<m<100000, s != t)输出输出 一行有两个数, 最短距离及其花费。样例输入3 21 2

2022-04-13 15:50:43 112

原创 【PAT A1003】 Emergency

As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked

2022-04-11 15:51:47 70

原创 问题 B: 算法7-16:弗洛伊德最短路径算法

题目描述在带权有向图G中,求G中的任意一对顶点间的最短路径问题,也是十分常见的一种问题。解决这个问题的一个方法是执行n次迪杰斯特拉算法,这样就可以求出每一对顶点间的最短路径,执行的时间复杂度为O(n3)。而另一种算法是由弗洛伊德提出的,时间复杂度同样是O(n3),但算法的形式简单很多。可以将弗洛伊德算法描述如下:在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出每一对顶点间的最短路径长度。输入输入的第一行包含1个正整数n,表示图中共有n个顶点。其中n不

2022-04-10 16:26:33 90

原创 问题 A: 算法7-15:迪杰斯特拉最短路径算法

题目描述在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。可将迪杰斯特拉算法描述如下:在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出源点至每一个其它顶点的最短路径长度。输入输入的第一行包含2个正整数n和s,表示图中共有n个顶点,且源点为s。其中n不超过50,s小于n。以后的n行中每行有n个用

2022-04-04 22:12:59 245

原创 【PAT A1030】 Travel Plan

A traveler’s map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a program to help a traveler to decide the shortest path between his/her starting city and the destination. If suc

2022-04-04 15:05:54 344

空空如也

空空如也

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

TA关注的人

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