![](https://img-blog.csdnimg.cn/b47a7048c00a4acc909010eca88f2396.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 55
分享记录一些优秀的算法问题与解决思路
H-rosy
不断学习不断分享
展开
-
POJ1321 棋盘问题(详解)
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n ......原创 2022-07-29 20:54:45 · 328 阅读 · 0 评论 -
T-无限的路
思路题目说了有规律那么我们就好好的仔细的瞄几眼这个图,你可以看见无论从哪个点出发他们之间的路径总是以b[x1+y1]那条线开始的,最后在以b[x2+y2]结束,然后中间的都是走的完整的一条线,所以我们只需要关心最开始走的那条线b[x1+y1]和最后走的那条线b[x2+y2]就好啦,我发现最开始的那条线的长度是(y1*1.0/(x1+y1))*b[x1+y1];(x2*1.0)/(y2+x2))*b[x2+y2],但是我们为了方便最后使用的是完整的一条b[x2+y2]最后再减去没有走的那一部分。...原创 2022-07-16 10:45:42 · 118 阅读 · 0 评论 -
HDU-单词数
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。有多组数据,每组一行,每组就是一篇小文章。每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。...原创 2022-07-15 14:41:56 · 230 阅读 · 0 评论 -
HDOJ-2057(A + B Again)
There must be many A + B problems in our HDOJ , now a new one is coming.Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.Easy ? AC it !INPUTThe input contains several test cases, please pr.原创 2022-07-15 14:33:52 · 176 阅读 · 0 评论 -
I - 人见人爱A^B
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”Input输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1原创 2022-07-12 11:35:56 · 110 阅读 · 0 评论 -
U - 发工资咯:)
作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。Input输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n...原创 2022-07-09 21:45:18 · 144 阅读 · 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 · 1072 阅读 · 0 评论 -
0-1背包问题(回溯法c++详解)
0-1背包问题(回溯法)题目描述有n个物品,第i个物品重量为wi,价值为vi,现有一背包容量为C,要求把物品装入背包得到最大价值,并且要求出这些选取的物品。 要求用回溯法求解。输入多组测试数据,请处理到文件尾,一个整数表示物品的数量n,后一行有n个整数,代表价值,再后一行有n个整数,代表重量,最后有一个整数C代表背包容量,1......原创 2022-06-24 00:00:48 · 1588 阅读 · 1 评论 -
n皇后问题
目录题目描述 思路:代码: 使用回溯法求解N后问题。在n*n格子上放置n个皇后, 按照国际象棋规矩不可让皇后相互攻击, 即如何两个皇后不放在同一列同一行同一斜线上.n皇后是由八皇后问题演变而来的。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。 输入皇后的个数。原创 2022-06-22 23:55:13 · 113 阅读 · 0 评论 -
问题 F: 油田问题
题目描述输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。如果两个字符“@”所在的格子相邻(横、竖或者对角线方向),即属于同一个八连块。输入多组输入输入行数m,以及列数n。然后输入*和@1...原创 2022-06-09 21:35:51 · 231 阅读 · 0 评论 -
六素数法判断素数
以往大家判断素数的方法一般都是一下两种吧,我以前也是,就在昨天我看别人的题解时看到了另外一种方式,而且时间复杂度更低。那就是六素数法判断素数,特此给大家分享。首先给大家复习一遍常规的两种办法:方法一:bool prime(int i){for(j=2; j......原创 2022-06-10 10:08:14 · 321 阅读 · 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 · 78 阅读 · 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 · 248 阅读 · 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 · 144 阅读 · 0 评论 -
2022年春季学期《算法分析与设计》练习8 数字三角形之动态规划法与滚球游戏
(1)如下图所示的数字三角形,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。编写一个程序求出最佳路径上的数字之和。 【使用动态规划法实现】(2)某滚球游戏规则如下:球从入口处(第一层)开始向下滚动,每次可向下滚动一层,直到滚至最下面一层为止。球每次可滚至左下、下方或右下三个方格中的任意一个,每个方格都有一个得分,如样例所示。第1层有1个方格,第2层有3个方格,……,以此类推,第n层有2*n-1个方格。设计一个算法,使得球从入口滚至最下面原创 2022-04-24 23:40:26 · 316 阅读 · 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 · 510 阅读 · 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 · 388 阅读 · 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 · 741 阅读 · 0 评论 -
STL 中的常见实用库函数(适合初学算法者阅读)(持续更新中)
本篇文章主要讲解一些stl库中的一些常用函数,有些没有写全,欢迎评论区补全哦首先当然是最好用的万能头文件啦:#include<bits/stdc++.h>这个头文件中包含了绝大部分我们所需要的头文件,比如stdio.h algorithm math.h 等等当然在使用它时记得要配合using namespace std; 使用哟,这是因为using namespace std; 这样命名空间std内定义的所有标识符都有效(曝光)。但这又会带来了一个新问题。无数原有的C++代码都..原创 2022-04-05 14:41:56 · 3118 阅读 · 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 · 1598 阅读 · 0 评论 -
打印杨辉三角形前十行
打印杨辉三角前10行。杨辉三角形如下图;输入无输出按照题目描述输出样例输入Copy无样例输出Copy无提示每个数占6位,向右对齐#include<bits/stdc++.h>using namespace std;typedef long long ll; int main(){ int a[11][11]; for(int i=1;i<=10;i++){//以1为起始下标 a[i][...原创 2022-03-31 11:24:51 · 4055 阅读 · 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 · 286 阅读 · 0 评论 -
HNUCM 《算法分析与设计》练习5 好老师(超详细哟)
我想当一个好老师,所以我决定记住所有学生的名字。可是不久以后我就放弃了,因为学生太多了,根本记不住。但是我不能让我的学生发现这一点,否则会很没面子。所以每次要叫学生的名字时,我会引用离他最近的,我认得的学生。比如有10个学生:A ? ? D ? ? ? H ? ?想叫每个学生时,具体的叫法是:输入输入只有一组数据。第一行是学生数n(1<=n<=100)。第二行是每个学生的名字,按照从左到右的顺序给出,以逗号分隔。每个名字要么是不超过3个英文字母,要么是问...原创 2022-03-30 20:26:24 · 109 阅读 · 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 · 1220 阅读 · 0 评论 -
星系炸弹(c++)
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,a年b月c日放置,定时为n天,请你计算它爆炸的准确日期。输入输入存在多组数据,每组数据输入一行,每一行输入四个正整数a,b,c,n输入保证日期在1000-01-01到2020-01-01之间,且日期合法。n不超过1000输出请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份原创 2022-03-26 11:58:39 · 261 阅读 · 0 评论 -
蓝桥杯 移动距离 详解
蓝桥杯移动距离代码简单,注释明了原创 2022-03-26 10:58:17 · 272 阅读 · 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 · 442 阅读 · 0 评论