【每日算法】基础算法——石子合并(七十八)
题目内容设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。 例如有4堆石 ...
Read more
【每日算法】基础算法——编辑距离(七十七)
题目内容给定n个长度不超过10的字符串以及m次询问,每次询问给出一个字符串和一个操作次数上限。 对于每次询问,请你求出给定的n个字符串中有多少个字符串可以在上限操作次数内经过操作变成询问给出的字符串。 每个对字符串进行的单个字符的插入、删除或替换算作一次操作。 输入格式第一行包含两个整数n和m。 接 ...
Read more
【每日算法】基础算法——最短编辑距离(七十六)
题目内容给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有: 删除–将字符串A中的某个字符删除。 插入–在字符串A的某个位置插入某个字符。 替换–将字符串A中的某个字符替换为另一个字符。 现在请你求出,将A变为B至少需要进行多少次操作 输入格式第一行包含整数n,表示字符串A的长度 ...
Read more
【每日算法】基础算法——最长公共子序列(七十五)
题目内容给定两个长度分别为N和M的字符串A和B,求既是A的子序列又是B的子序列的字符串长度最长是多少。 输入格式第一行包含两个整数N和M。 第二行包含一个长度为N的字符串,表示字符串A。 第三行包含一个长度为M的字符串,表示字符串B。 字符串均由小写字母构成。 输出格式输出一个整数,表示最大长度。 ...
Read more
【每日算法】基础算法——最长上升子序列二(七十四)
题目内容给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。 输出格式输出一个整数,表示最大长度。 数据范围1≤N≤100000 ,$−10^9$≤数列中的数≤$10^9$ 输入样例73 1 2 1 8 5 6 输出样例4 ...
Read more
【每日算法】基础算法——最长上升子序列(七十三)
题目内容给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。 输出格式输出一个整数,表示最大长度。 数据范围1≤N≤1000 ,$−10^9$≤数列中的数≤$10^9$ 输入样例73 1 2 1 8 5 6 输出样例4 题 ...
Read more
【每日算法】基础算法——数字三角形(七十二)
题目内容给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5 ...
Read more
【每日算法】基础算法——分组背包问题(七十一)
题目内容有 N 组物品和一个容量是 V 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 $v{ij}$,价值是 $w{ij}$,其中 i 是组号,j 是组内编号。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式第一行有两个整 ...
Read more
【每日算法】基础算法——多重背包问题二(七十)
题目内容有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N 行,每行 ...
Read more
【每日算法】基础算法——多重背包问题(六十九)
题目内容有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N 行,每行 ...
Read more