oj
文章平均质量分 60
H-rosy
不断学习不断分享
展开
-
HNUCM 2022年暑假ACM搜索专项练习
小B在一个有N个城市M条道路的国家,每条道路连接的城市可以互相到达且每条道路小B都要花1步去走过它。现在他在1号城市,问他走P步最多能走多少个不同的城市?输入输入格式:第1行,三个正整数N、M、P,意义如题:接下来M行,每行两个整数U、V,表示存在一条连接U、V的无向边。输出输出格式:1行,一个整数,表示从1号城市出发走P步的所有情况,共能经过多少个不同的城市。样例输入Copy...原创 2022-08-03 17:28:12 · 357 阅读 · 0 评论 -
HNUCM 您好中国
小明一天突发奇想,随机生成了一个全部由大写字母组成的方阵。他惊奇地发现这个方阵中包含中国的英文单词“CHINA”。他希望你能够编写一个程序,能够找出一个由大写字母组成的方阵中所有不同的“CHINA”,要“CHINA”求中五个字母要连续出现,方向可以是上、下、左、右中的任意一个。例如在下面的4*4的方阵中就包含了两个不同的“CHINA”。一个是第1行第1列到第3列的“CHI”,加上第2行第3列的“N”以及第2行第2列的“A”组成的“CHINA”;还有一个是第1行第1列到第3列的“CHI”,加上第2行第3列原创 2022-08-03 15:05:57 · 279 阅读 · 0 评论 -
HNUCM 2022年春季学期《算法分析与设计》练习9斜线最大最小值
题目描述求如图所示一个上三角矩阵中每一条斜线中的最大元素(L)和最小元素(S)。输入每组输入包括两部分,一部分为数字n,表示三角矩阵的行数。第二部分即为三角矩阵。输出每一个对角线输出一行,每行包括Lx=Max, Sx=Min,其中x为斜线序号(序号从1开始),Max为该斜线上的最大值,Min为该斜线上的最小值。样例输入Copy61 3 5 7 11 200 6 8 2 3 130 0 7 4 8 90 0 0 18 3 100 0 0 0 12 60 0.原创 2022-04-28 16:05:22 · 265 阅读 · 0 评论 -
2022年春季学期《算法分析与设计》练习8 数最长公共子序列问题(动态规划法)与构造最长公共子序列
使用动态规划算法求解两个序列的最长公共子序列的长度。输入每组输入包括两行,每行包括一个字符串。输出两个序列的最长公共子序列的长度。样例输入CopyACBCDABDABDCABA样例输出Copy5如果这一篇你觉得写的不够详细你可以看看以前我写的这篇比较详细的:回文子串与公共子序列问题#include<bits/stdc++.h>using namespace std;char a[1005],b[1005];int lcs[1005...原创 2022-04-24 21:38:27 · 179 阅读 · 0 评论 -
HNUCM 《算法分析与设计》练习7 大整数乘法(分治法)
使用分治算法实现两个大整数相乘。输入两个十进制大整数,满足每一个整数长度为2^n且两个大整数的长度相等。(多组数据)输出两个大整数的乘积。样例输入Copy1234 5678样例输出Copy7006652芭比Q了这图片老是反的。。。。#include<bits/stdc++.h> typedef long long ll;using namespace std;int solve(int n,int m,int le...原创 2022-04-16 10:47:58 · 547 阅读 · 0 评论 -
HNUCM《算法分析与设计》练习4 二分搜索升级版
设a[0:n-1]是已排好序的数组。请改写二分搜索算法,使得当待搜索元素x不在数组中时,返回小于x的最大元素的位置i和大于x的最小元素的位置j;当待搜索元素x在数组中时,返回的i和j相同,均为x在数组中的位置输入多组数据输入,每组第一个数字为数组的长度n,然后输入n个整数,最后输入带查询的值x。输出输出小于x的最大元素的位置i和大于x的最小元素的位置j;当待搜索元素x在数组中时,返回的i和j相同,均为x在数组中的位置样例输入Copy3 1 2 3 24 0 1 3 4 2 .原创 2022-03-24 15:57:14 · 488 阅读 · 0 评论 -
HNUCM 算法分析与设计练习5之快速排序
编程实现快速排序算法,深入理解快速排序算法的基本思想。输入多组输入,每组第一个数字为数组长度,然后输入一个一维整型数组。输出输出快速排序之后的一维整型数组(升序)样例输入Copy6 1 8 6 5 3 45 12 42 2 5 8样例输出Copy1 3 4 5 6 82 5 8 12 42提交#include<bits/stdc++.h>using namespace std;typedef long long ll;voi...原创 2022-03-30 16:24:29 · 1265 阅读 · 0 评论 -
HNUCM 最大字段和(不使用空间换时间)
题目描述给定n个整数(可能是负数)组成的序列a[1], a[2], a[3], …, a[n],求该序列的子段和如a[i]+a[i+1]+…+a[j]的最大值。输入每组输入包括两行,第一行为序列长度n,第二行为序列。输出输出字段和的最大值。样例输入Copy5-1 0 1 2 3样例输出Copy6#include<bits/stdc++.h>using namespace std;int a[1005];int main(){ int ..原创 2022-04-28 16:08:30 · 112 阅读 · 0 评论 -
HNUCM 《算法分析与设计》练习5 阶层除法(两种方法)
输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*...*n (n>=1)。比如,若 n=6, m=3,则 n!/m!=6!/3!=720/6=120。是不是很简单?现在让我们把问题反过来:输入 k=n!/m!,找到这样的整数二元组(n,m) (n>m>=1)。如果答案不唯一,n应该尽量小。比如,若 k=120,输出应该是 n=5, m=1,而不是 n=6, m=3,因为 5!/1!=6!/3!=120,而 5<6。输入输入包含不超过...原创 2022-03-31 09:54:24 · 328 阅读 · 0 评论 -
HNUCM 2022年春季学期《算法分析与设计》练习6 棋盘覆盖
在一个n×n (n =2k)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。输入多组测试用例,每组测试用例包括两部分,第一部分为方格的宽度n,第二部分则为方格,特殊方格为-1,其他方格为0。输出输出覆盖后的方案样例输入Copy4-1 0 0 00 0 0 00 0 0 00 0 0 0...原创 2022-04-09 22:32:20 · 799 阅读 · 0 评论 -
HNUCM 2022年春季《算法分析与设计》练习七 问题 F: 整数划分问题之备忘录法(备忘录和递归解法)
[命题人 :admin]时间限制 :1.000sec内存限制 :128 MB题目描述使用备忘录法编写一个程序,求一个正整数n的所有划分个数。例如,输入3,输出3;输入4,输出5。输入多组输入,每一组是一个正整数n。输出输出划分数。样例输入Copy34样例输出Copy35#include<bits/stdc++.h>using namespace std;int re[1005][1005];...原创 2022-04-15 11:44:34 · 407 阅读 · 0 评论 -
HNUCM 算法分析与设计练习5 随机化快速排序
使用Java或C++等语言中内置的随机函数实现随机化快速排序,在数组中随机选择一个元素作为分区的主元(Pivot)。输入多组样例输入,每组由一个一维整型数组组成。输出随机化快速排序之后的一维整型数组(升序排列)。样例输入Copy6 1 8 6 5 3 45 12 42 2 5 8样例输出Copy1 3 4 5 6 82 5 8 12 42其实与上一篇真的一模一样!!!#include<bits/stdc++.h>using ...原创 2022-03-31 15:55:38 · 1637 阅读 · 0 评论 -
2022年春季学期《算法分析与设计》练习8 数字三角形之动态规划法与滚球游戏
(1)如下图所示的数字三角形,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。编写一个程序求出最佳路径上的数字之和。 【使用动态规划法实现】(2)某滚球游戏规则如下:球从入口处(第一层)开始向下滚动,每次可向下滚动一层,直到滚至最下面一层为止。球每次可滚至左下、下方或右下三个方格中的任意一个,每个方格都有一个得分,如样例所示。第1层有1个方格,第2层有3个方格,……,以此类推,第n层有2*n-1个方格。设计一个算法,使得球从入口滚至最下面原创 2022-04-24 23:40:26 · 338 阅读 · 0 评论 -
HNUCM 《算法分析与设计》练习5 好老师(超详细哟)
我想当一个好老师,所以我决定记住所有学生的名字。可是不久以后我就放弃了,因为学生太多了,根本记不住。但是我不能让我的学生发现这一点,否则会很没面子。所以每次要叫学生的名字时,我会引用离他最近的,我认得的学生。比如有10个学生:A ? ? D ? ? ? H ? ?想叫每个学生时,具体的叫法是:输入输入只有一组数据。第一行是学生数n(1<=n<=100)。第二行是每个学生的名字,按照从左到右的顺序给出,以逗号分隔。每个名字要么是不超过3个英文字母,要么是问...原创 2022-03-30 20:26:24 · 139 阅读 · 0 评论 -
第k大元素(时间复杂度为O(n))
[命题人 : yancheng]时间限制 : 1.000 sec 内存限制 : 128 MB提交解决: 156提交量: 1038统计题目描述输入一个整数数组,请求出该数组的第k大元素。要求时间复杂度为O(n)。 输入每组输入包括两行,第一行为k值;第二行为一个整数数组,两个数字之间用空格隔开。数组中元素个数小于1000。输出输出第k大元素的值,每个结果占一行样例输入 Copy2 3 2 1 5 6 4样例输出 Copy5......原创 2022-07-02 19:17:17 · 1122 阅读 · 0 评论 -
2022算法分析与练习十六
题目描述有n个物品,第i个物品重量为wi,价值为vi,现有一背包容量为C,要求把物品装入背包得到最大价值,并且要求出这些选取的物品。 要求用回溯法求解。输入多组测试数据,请处理到文件尾,一个整数表示物品的数量n,后一行有n个整数,代表价值,再后一行有n个整数,代表重量,最后有一个整数C代表背包容量,1......原创 2022-06-24 20:02:07 · 891 阅读 · 0 评论 -
0-1背包问题(回溯法c++详解)
0-1背包问题(回溯法)题目描述有n个物品,第i个物品重量为wi,价值为vi,现有一背包容量为C,要求把物品装入背包得到最大价值,并且要求出这些选取的物品。 要求用回溯法求解。输入多组测试数据,请处理到文件尾,一个整数表示物品的数量n,后一行有n个整数,代表价值,再后一行有n个整数,代表重量,最后有一个整数C代表背包容量,1......原创 2022-06-24 00:00:48 · 1694 阅读 · 1 评论 -
n皇后问题
目录题目描述 思路:代码: 使用回溯法求解N后问题。在n*n格子上放置n个皇后, 按照国际象棋规矩不可让皇后相互攻击, 即如何两个皇后不放在同一列同一行同一斜线上.n皇后是由八皇后问题演变而来的。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。 输入皇后的个数。原创 2022-06-22 23:55:13 · 138 阅读 · 0 评论 -
HNUCM 1355: wjw的星期五 1926: 电子手表(时间问题)
题目描述wjw最近运气极其差,什么roll点1-100连着十次都是个位数啊,买个珍珠奶茶没有珍珠啊,吃方便面没有调料包啊...迷信的wjw觉得,一定是因为这个月的13号正好是星期五,才会导致他的运气这么差。现在他想知道,在某个年份中,有多少个月的13号是星期五,这样他才可以提前做好心理准备。PS.已知1998年1月1日是星期四,输入的年份肯定大于或等于1998年。输入input输入只有一行,表示年份(大于等于1998年)输出output输出只有一行,表示这一年中有多少个月的13号是星期五样例输入原创 2022-06-09 22:29:25 · 184 阅读 · 0 评论 -
问题 F: 油田问题
题目描述输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。如果两个字符“@”所在的格子相邻(横、竖或者对角线方向),即属于同一个八连块。输入多组输入输入行数m,以及列数n。然后输入*和@1...原创 2022-06-09 21:35:51 · 266 阅读 · 0 评论 -
2022年春季学期《算法分析与设计》练习14
目录打印菱形 问题 B: 牛妹的蛋糕 问题 C: 尼科彻斯定理 问题 D: 单源最短路径问题 题目描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。输入多组输入,一个整数(2~20)。输出针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。每输出一个菱形的后面需要空一行。样例输入 Copy234样例输出 Copy * * * * * * * * * * * * * * * * * * *原创 2022-06-08 22:49:35 · 606 阅读 · 0 评论 -
单源最短路径问题
题目描述编程实现Dijkstra算法,求一个有向加权图中,从源点出发到其他各个顶点的最短路径。输入第1行第1个值表示顶点个数,第2个值表示边个数;第2行开始为边(两个顶点,边的起点和终点)及权重。输出顶点0到每一个顶点的最短路径长度。样例输入 Copy5 70 1 100 3 300 4 1001 2 502 4 103 2 203 4 60样例输出 Copy0 10 50 30 60.........原创 2022-06-08 22:47:29 · 522 阅读 · 0 评论 -
二分搜索(递归与非递归)
题目描述使用非递归算法,实现二分搜索。输入多组数据输入,每组第一个数字为数组的长度n,然后输入n个整数,最后输入待查询的值。输出输出待查询值所在的位置,如果没有找到,则返回-1。样例输入 Copy3 1 2 3 24 0 1 3 4 2 样例输出 Copy2-1非递归:......原创 2022-06-02 22:00:01 · 242 阅读 · 0 评论 -
《算法分析与设计》练习13
题目描述明明迷上了一个搭建电路的游戏。在游戏中,每次在两个电子元件之间增加一条有效电路(两个元件之间先前没有电路相连)都将获得相应的积分奖励。已知电子元件数量n和部分电子元件之间的奖励积分值。如何构建一个有效电路将所有元件全部连接起来,并且可以得到最多的积分奖励。输入每组输入数据包含m+1行。第1行输入两个正整数n和m,其中n表示电子元件数量(n原创 2022-06-02 17:42:21 · 354 阅读 · 0 评论 -
HNUCM 工作单位
题目描述在某个城市中住着n个人,现在给定关于这n个人的m条信息(即某2个人认识)。假设所有认识的人一定属于同一个单位,请计算该城市有多少个单位?输入第1行的第1个值表示总人数n,第2个值表示总信息数m;第2行开始为具体的认识关系信息输出单位的个数这里给一组测试用例100 201 53 815 93 41 269 369 53 756 5831 9696 6931 2325 1227 98 35 136 569 8766 2535 88你可以看到下面的结果已经原创 2022-06-01 19:37:22 · 190 阅读 · 0 评论 -
HNUCM《算法分析与设计》练习12
使用Prim算法求图的最小生成树(MST)输入每组数据分为两个部分,第一部分为图的点数n,和边数m,第二部分为m行,每一行输入三个数字,前两个为两个顶点的编号,第三个为边权重。输出最小生成树,输出时按照边的两个端点的升序输出。(先看左端点,再看右端点,端点不换位置)样例输入Copy3 30 1 100 2 151 2 50样例输出Copy0 1 100 2 15原创 2022-05-27 18:00:05 · 575 阅读 · 0 评论 -
HNUCM X星纸币(详解解释)
题目描述X星最新版纸币的面额很奇怪,一共有1元、4元、9元、16元、25元、100元六种不同的面额。已知每种面额纸币的数量不限,现在需要从中选取若干张纸币组成N元(N为正整数)。请编写一个程序计算组成N元最少需要的纸币数量。输入单组输入。每组1行,包含一个正整数N,N<=10^6。输出输出组成N元最少需要的纸币数量。样例输入Copy12样例输出Copy3提示组成12元最少需要3张面值都是4的纸币。#include<bits/stdc..原创 2022-05-19 21:05:24 · 918 阅读 · 0 评论 -
HNUCM 最大收益(避坑解决为什么代码只过20%,与月饼问题一样)
小X是一位精明的投资人,他每次都能够做出正确的投资判断。现在有N个项目,每个项目的总投资额和总收益已知,并且每一个项目都允许小X只投资一部分,当然也就只能拿到一部分收益。现在小X决定拿出M万元钱来进行投资,请你帮他设计一个算法来计算最大收益和。输入单组输入,对于每一组数据,第1行包含两个正整数,分别是M和N,其中M<=10^6,N<=100。接下来N行每行均包含两个正数(不一定是正整数),第1数字表示第N个项目的总投资额(万元),第2个数字表示第N个项目的总收益(万元),两个数字之原创 2022-05-19 18:32:15 · 238 阅读 · 0 评论 -
HNUCM 月饼(避坑,解决为什么代码只过14%)
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得 72 + 45/2 = 94.5(亿元)。输入每个输入包含1个测试用例。每个测试原创 2022-05-19 18:21:44 · 212 阅读 · 0 评论 -
HNUCM 道具的魅力值(贪心算法)
在某网络游戏中提供了一个道具库,在道具库中每种道具均有若干件(数量已知),游戏玩家购买一件道具将获得一定的魅力值。已知每种道具的价格和魅力值,请编写一个程序,在总价格不超过某个上限的情况下使得所购道具的魅力值之和达到最大。输入每组测试数据的输入有n+1行,n表示道具的种类。(n<=100,p<=10000)第1行包含两个正整数,分别表示道具种类数n和总价值的上限p,两个数字之间用空格隔开。第2行到第n+1行分别对应于第1种道具到第n种道具的信息,每1行包含三个正整数,两个数字之间用原创 2022-05-13 23:48:50 · 406 阅读 · 0 评论 -
HNUCM 算法分析与设计练习十 最长递增子序列 (系列问题)
在“最长递增子序列”的基础上对代码进行改进,输出一条最长递增子序列。输入每组输入包括两行,第一行为序列长度n,第二行为序列。输出输出最长递增子序列中的任意一条即可。样例输入Copy71 7 3 4 9 2 3样例输出Copy1 3 4 9#include<bits/stdc++.h>using namespace std;int n,a[105],b[105],c[105],maxlen...原创 2022-05-13 23:37:43 · 282 阅读 · 0 评论 -
图书排序(简洁易懂)
某图书销售管理系统需要对图书(Book)进行排序,每一本图书包含书名(bookName)、销量(bookSales)、价格(bookPrice)等属性,要求先按照销量由大到小排序,对于销量相同的图书再按照价格由小到大排序。输入每组输入包括两个部分,第一部分为书的数量n,接下来n行则为n本书的信息。 按顺序输入书名(不超过20个字)、销量、价格。输出输出排序后的信息,每个属性用空格隔开样例输入Copy7C++程序设计 120 25.00软件工程 96 48.00高等数学 8.原创 2022-05-13 12:35:07 · 1498 阅读 · 0 评论 -
HNUCM 矩阵连乘问题合集
备忘录法和使用备忘录法求解矩阵连乘问题,输出最少乘法次数。输入每组数据包括两行,第一行为数组长度n,第二行为存储矩阵维数的一维数组。输出矩阵连乘最优计算次数。样例输入Copy730 35 15 5 10 20 25样例输出Copy15125#include<bits/stdc++.h>using namespace std;int m[1005][1005];int p[1005];int lookupChain(int i,i...原创 2022-05-02 22:18:09 · 479 阅读 · 0 评论 -
HNUCM 最大子段和升级版(求最大字段和的起始和结束位置)
使用动态规划算法求整数数组(可能包含负整数)的最大子段和,以及和最大子段的起始位置和结束位置:例如:输入数组(6,-1,5,4,-7),输出14, 1, 4,其中14表示最大子段和,1表示和最大的子段从第1个数字开始,4表示和最大的子段到第4个数字结束,即(6, -1 , 5, 4)。输入每组输入两行,第1行为数组中包含的整数个数n,第2行为n个整数(可能包含负整数),两两之间用空格隔开。输出输出最大子段和,以及和最大子段的起始位置和结束位置,两两之间用空格隔开。样例输入Copy.原创 2022-04-28 22:24:19 · 217 阅读 · 0 评论 -
HNUCM XP的矩阵(附动态规划思路)
XP学长觉得矩阵很美,虽然他也不知道美在哪里,因此,他决定挖掘一下矩阵的美。现在给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,将路径上的所有数字累加起来作为这条路径的路径和。XP学长决定编写一个程序来求所有路径和中的最小路径和。例如,下面矩阵中的路径1-3-1-0-6-1-0是所有路径中路径和最小的,返回结果是12。1 3 5 98 1 3 45 0 6 18 8 4 0输入输入包含多组测试用例,第一行输入一个T表示测试数据组数,(1<=T&l.原创 2022-04-28 17:18:26 · 686 阅读 · 1 评论