logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

c++混合背包问题(多重背包二进制优化)

混合背包问题是指在一个背包中可以装入多种不同的物品,每种物品有自己的重量和价值,同时每种物品又有固定的数量限制。表示物品的数量限制。如果该物品数量无限,则将该物品视为完全背包问题,按照完全背包的方式添加重量和价值。如果该物品数量为1,则将该物品视为01背包问题,添加一次该物品的重量和价值即可。最终,将所有物品按照上述方式进行转换并加入背包中,即可得到混合背包问题的最优解。如果该物品数量有限,则将该

文章图片
#c++#算法#动态规划
c++传纸条(类似于方格取数)

还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:小渊和小轩的好心程度没有定义,输入时用 0 表示),可以用一个 0∼100 的自然数来表示,数越大表示越好心。接下来的 mm 行是一个 m×n 的矩阵,矩阵中第 i 行 j 列的整数表示坐在第 i 行 j 列的学生的好心程度,每行的 n 个整数之间用空格隔开。班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在小渊递给

文章图片
#c++#算法#动态规划
c++导弹拦截(算法竞赛进阶指南)

例如,一套系统先后拦截了高度为 3 和高度为 4 的两发导弹,那么接下来该系统就只能拦截高度大于 4 的导弹。给定即将袭来的一系列导弹的高度,请你求出至少需要多少套防御系统,就可以将它们全部击落。1、h[N]数组代表高度,up[N],down[N]数组代表上升和下降的储存数组。一套击落高度为 3,4 的导弹,另一套击落高度为 5,2,1 的导弹。对于每个测试用例,输出一个占据一行的整数,表示所需的

文章图片
#c++#算法#深度优先 +1
c++马走日(DFS之搜索顺序)详解

在DFS中,我们沿着每个分支前进,直到无法前进为止,然后返回上一个分支并前进,直到所有的分支都被探索。例如,当我们需要在由字母组成的单词列表中找到所有的单词时,我们可以使用DFS来搜索单词列表,按字母顺序筛选出所需的单词。在某些问题中,我们需要找到所有的解决方案。请编写一段程序,给定 n∗m大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的

文章图片
#深度优先#c++#算法
c++最大上升子序列和(详解)

在MASS问题中,给定一个正整数序列,求最长的上升子序列,并且要求这个上升子序列的和最大。注意,最长的上升子序列的和不一定是最大的,比如序列(100,1,2,3)的最大上升子序列和为100,而最长上升子序列为(1,2,3)。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。

文章图片
#c++#算法#动态规划
c++ dijkstra堆优化版

接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。2、初始化距离为正无穷,第一个点的距离为0,注意这两步不能颠倒。数据保证:如果最短路存在,则最短路的长度不超过 10^9。输出一

文章图片
#c++#算法
c++蛇形矩阵

再设一个变量d控制方向,假定d=1向右,d=2向下,d=3向左,d=0向上,这样d四个值就代表四个方向,那d怎么变化呢,当数组要转动方向的时候,d就+1,可以用先赋值d=1,d=(d+1)%4,这样就可以完美表示数组偏移方向,那我们如何判断数组要拐弯呢?首先呢,我们先把二维数组起始点作为坐标起点,设为(x,y),向上移动一格的话坐标就变为(x-1,y),向右的话移动一格坐标就变为(x,y+1),以

文章图片
#c++#矩阵
c++数字组合(01背包求方案数)

给定 N 个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。第二行包含 N 个整数,表示 A1,A2,…第一行包含两个整数 N 和 M。包含一个整数,表示可选方案数。答案保证在 int 范围内。

文章图片
#c++#算法#动态规划
c++最短路计数(acwing版)

先看题目:给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1 到 N。问从顶点 1 开始,到其他每个点的最短路有几条。

文章图片
#c++#算法#数据结构
c++P1462 通往奥格瑞玛的道路(acwing版)

表示城市 ai​ 和城市 bi​ 之间有一条公路,如果从城市 ai​ 到城市 bi​,或者从城市 bi​ 到城市 ai​,会损失 ci​ 的血量。假设 1 为暴风城,n 为奥格瑞玛,而他的血量最多为 b,出发时他的血量是满的。歪嘴哦不希望花很多钱,他想知道,在可以到达奥格瑞玛的情况下,他所经过的所有城市中最多的一次收取的费用的最小值是多少。城市之间有 m 条双向的公路,连接着两个城市,从某个城市到

文章图片
#c++#算法#数据结构
    共 17 条
  • 1
  • 2
  • 请选择