自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P5022 [NOIP2018 提高组] 旅行题解

NOIP2018 提高组 D2T1小 Y 是一个爱好旅行的 OIer。她来到 X 国,打算将各个城市都玩一遍。小 Y 了解到,X 国的 n 个城市之间有 m 条双向道路。每条双向道路连接两个城市。不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路。并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市。小 Y 只能通过这些 道路从一个城市前往另一个城市。

2024-04-20 22:59:16 1849

原创 P8817 [CSP-S 2022] 假期计划题解

转车时经过的点没有任何限制,既可以是家、也可以是景点,还可以重复经过相同的点。例如,在景点 A →→ 景点 B 的这段行程中,转车时经过的点可以是家、也可以是景点 C,还可以是景点 D →→ 家这段行程转车时经过的点。部分点对之间有双向直达的公交线路。首先找到的a、d两点一定要与家相连,其次题目要求景点分数和最大,那么我们可以不用考虑剩下分值很小的点,假设找到的a与家和b相连且分数最大,并且这个a点又是符合条件的最佳d点,那分数是肯定不能同时计算的,所以其中的某一个要取得分第二大的点。

2024-03-31 00:09:07 780

原创 Openjudge P7834分成互质组题解

首先定义一个minans表示我们的最小值,接着用一个二维数组a[i][j]表示第i组第j个数字;问题就转化为了在一个新的矩形中求最大边长为c的正方形。我们现在来简单证明一下这个函数,先把问题转化一下:求a和b的最大公因数,其实就是用边长为r的。最后希望大家能够喜欢我的文章,多多支持我,有问题的小伙伴可以私信交流,大家共同进步!给定n个正整数,将它们分组,使得每组中任意两个数互质。中,如果刚好填满,r一定是a和b的。一个正整数,即最少需要的组数。以上就是分成互质组的搜索解法。,当r最大时,r就为a和b的。

2024-01-14 00:46:09 958 1

原创 P1019 [NOIP2000 提高组] 单词接龙题解

输入的第一行为一个单独的整数n表示单词数,以下n行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。只需输出以此字母开头的最长的“龙”的长度。只要是两个单词之间有公共部分却又不存在包含关系的就可以进行搜索,如果发现不存在任何一个单词可以进行接龙就停止搜索,记录现在单词长度与之前最大长度的最大值,即max(ans,len)。以上就是本题的核心思路。),在两个单词相连时,其重合部分合为一部分,例如 "beast" 和 "astonish",如果接成一条龙则变为 "beastonish",

2024-01-07 09:57:16 493 1

原创 多重背包、分组背包问题

这两个问题是建立在多重背包,01背包的基础之上的,有不清楚的小伙伴可以在我之前的博客中学习。接下来学习的是背包系列中的多重背包和分组背包。

2023-12-31 10:25:53 900 5

原创 完全背包问题

前言:这个问题是建立在01背包的基础之上的,如果没听过01背包的小伙伴可以先前往我的上一篇文章中进行学习。但是看到数据范围,再加上我们要处理实际问题,肯定是不能用三重循环的,这时候就要想办法精简我们的代码,提升算法效率。这里很明显可以发现,01背包的代码已经不能解决这个问题,那我们先考虑,我们面对每一种物品时的选择:选/不选,选几个?接下来有 n 行,每行两个整数 v[i],w[i],用空格隔开,分别表示第 i 种物品的体积和价值。第一行两个整数,n,m,用空格隔开,分别表示物品种数和背包容积。

2023-12-18 09:00:00 921 2

原创 01背包问题

但是通过观察和思考不难发现,f[i][j]中的i发挥的作用并不大,只是用来区分第i次和第i-1次的状态,所以我们可以通过倒着枚举体积的方式实现去除i的效果,那我们能处理的数据范围自然可以变大。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。选:价值变为前i-1件物品中体积不超过j-v[i]的物品的总价值加上物品i的价值;这里我们先用f[i][j]来表示前i件物品中,总体积不超过j的物品的最大价值。第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。

2023-12-17 14:24:54 1710 5

原创 最长上升子序列题解

分别表示这n个数和前面的数组成的长度为i最长上升子序列中末尾最小的数字。//分别表示前i个数字中最长上升子序列的长度和输入的n个正整数。j++)//在前i-1个数中找到符合要求最长的上升子序列。至于贪心,只有保证每个上升子序列的末尾数字尽可能地小,才能寻找到最长的上升子序列。首先查找到a[i]能够更新的值(若a[i]刚好小于某一上升子序列的末尾数字)f[j+1]=a[i];//加上a[i]形成一个新的子序列。//要求找到的子序列最后的数小于a[i];

2023-12-10 13:19:11 1810 6

空空如也

空空如也

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

TA关注的人

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