自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ3280Cheapest Palindrome(区间DP)

跟踪所有奶牛可能是一项棘手的任务,所以农夫约翰安装了一个系统来自动化这个过程。他在每头奶牛身上安装了一个电子ID标签,系统会在奶牛经过扫描仪时读取它们。每个ID标签的内容目前是一个长度为M(1 ≤M≤ 2,000)的字符串,由N(1 ≤N≤ 26)个不同符号(即小写罗马字母表)组成。奶牛是调皮的生物,有时会试图欺骗系统,倒着走。

2024-08-17 22:18:37 846 1

原创 在一起(换根DP)

第二次DFS进行换根,让孩子节点作为根与父节点为根的关系,对于本题,如果子节点变成根,那么子节点对应的子树上的人数到达根的代价都会减少 Wuv(边权),而父节点一边对应的代价便都会加大 Wuv;这是一道典型的换根DP,对于换根DP我们一般使用两次DFS,先任选一个节点作为根节点,树型DP搜索出每个子树的节点数(也就是人数),以及每个子树到根的代价,对于这题就是点与点的距离乘上人数。个不同的城市,编号为1~n。选4号城市作为聚会地,距离和为2·1 + (1 + 5)·2 + 3·3 + 6·4 = 47。

2024-08-03 23:26:06 367

原创 小G有一个大树 (树的重心)

其次就是我们应该如何考虑这个问题,我们可以任取一点u,如果u是重心,那么我们可以把连通块分为两类:一类是u的子树,一类是u上面部分。最后就是计算,对于树,我们采用dfs去搜索每一颗树的情况:用size记录最大节点数,sum记录以u为根的节点总数,那么n - sum 就是我们求的上部分节点数,tmp = max(size,n-sum);对于这样一颗树,显然节点6是树的重心,因为当你删除的是6以外的节点,那么肯定会有一个连通块节点数大于4.可是小G是个平衡性灰常灰常差的人,他想找到一个这个橘子树的平衡点。

2024-08-03 19:54:57 309

原创 炮兵阵地(状压DP)

其次就是考虑行间关系, i - 1 行 以及i - 2 行放了炮兵的列在第 i 行不能放,涉及三行我们用三维数组表示状态 f[ i ][ j ][ k ] 表示第 i 列,状态为 j , i - 1 列状态为k的炮兵数。现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。接下来的N行,每一行含有连续的M个字符('P'或者'H'),中间没有空格。

2024-08-03 00:21:00 356

原创 「HDU-2196」Computer (树形DP)

首先,先找一点作为树的根,那么对于每个点,最远距离有两种可能,一种是往下的,一种是往上与父节点的最大距离有关,我们称之为正向最大距离,和反向最大距离,所以我们考虑两次dfs。*如果父节点的最大正向距离所对应的子节点不是x,那么距离的最大值就是父节点的正向最大值 + w[i](边权) 和父节点的反向最大距离 + w[i] 的最大值。*如果父节点的最大正向距离所对应的子节点是x,那么距离的最大值就是父节点的正向次大值 + w[i](边权) 和父节点的反向最大距离 + w[i] 的最大值。

2024-08-02 23:31:23 223

原创 PTA 05-哈夫曼编码 哈夫曼编码

给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 'a'、'x'、'u'、'z' 的出现频率对应为 4、2、1、1。

2024-06-06 23:14:04 1309 2

原创 PTA 03-树2 List Leaves

2、如何遍历树,并按要求输出叶子节点:由于题目要求是从上到下,从左到右,这意味着在遍历当前层的节点之前,需要先遍历完上一层的节点,这显然是层序遍历。层序遍历基于队列的数据结构实现,这里我使用的是数组模拟队列。大致意思就是:输入节点个数,然后按顺序(0到N-1)输入每个节点的左右子树的索引,要求输出叶子节点,顺序为从上到下,从左到右。1、创建树:由于是二叉树,我们可以选择用结构体数组去存树的节点以及左右孩子的索引。注意:这里对输出有要求,所以先将符合要求的节点放入vector中,最后一起输出。

2024-06-05 23:00:03 1209

原创 有10个地区的面积,要求对他们按由小到大的顺序排序

解题思路:每次将相邻的数比较,将小的调到前面。若有6个数字:9,8,5,4,2,0第一次将9和8对调。再依次与剩下的数比较,经过五次比较最大的数9已经沉底,成为最右边的数,而其他大于9的数都向前一个位置。经过一轮比较就可得出最大的数。同理进行第二轮比较即可得出第二大的数8的位置,由于第一轮已经比较过8和9了则第二轮只需要比较4此。按此规律下去,6个数要比较5轮,第一轮比较5此,第二轮4次......第五轮一次。如果有n个数,则需比较n-1轮,第一轮比较n-1次,在第j轮比较n-j次。

2023-11-10 10:51:20 631 5

原创 输入一行字符,统计有多少单词,单词之间用空格分开

使用for循环,初始变量为1,遇到空格变量加一,再输出变量。输入一行字符,统计有多少单词,单词之间用空格分开。

2023-11-06 12:11:50 68

空空如也

空空如也

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

TA关注的人

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