- 博客(289)
- 收藏
- 关注

原创 【C++】动态规划题解集(更新至数位DP)
数字三角形模型1015.摘花生题目链接:1015.摘花生.题目描述一个n*m的矩阵,起点(0,0)终点(n,m),给定(x,y)上物品价值w,只能向右 or 向下,求经过的最大价值题目分析状态表示:f[i][j]属性:从起点出发,走到第i行第j列的所有方案集合:MAX状态转移f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j]code#include <bits/stdc++.h>using namespace std;const int N
2021-10-21 00:15:54
3746
2
原创 算法竞赛模板(动态规划)
体积至多是j,其余是0体积恰好是jf[0][0]=1,其余是0体积至少jf[0][0]=1,其余是0体积至多是j体积恰好是jf[0][0]=0,其余是INFf[0][0]=0,其余是-INF体积至少jf[0][0]=0,其余是INF(只会求价值最小值)
2023-04-07 09:40:01
658
原创 【题解】2023牛客寒假算法基础集训营4
时,的最大价值,然后用maxv+1-当前价值就是最后结果。先预处理zngg到达每个点的时间,然后qcjj按照地标走。没有办法进行O(n^3),所以我们想办法将其进行优化。问每个物品价值增加多少可以保证出现在01背包中。进制是效率最高的进制,越靠近e进制效率越高。思路是:必不选的最大价值-必选的价值+1。是常量,对r/lnr求导,发现其在。个数(回报),那么关于成本的式子。进制数,则表示这个数一共需要。tag: 树状数组,树的遍历。tag: 01背包,简单题。(成本),一共可以表示。为极值点,则直接输出。
2023-02-01 12:25:26
1079
原创 【题解】2023牛客寒假算法基础集训营2
贪心的想,总权值最大,可能存在一个点处于v的边界上,再看数据范围,因此我们可以枚举边界(即H),用map存一下分别对应的改变区间,最后,分别枚举不同的H求maxv即可。贪心的想,当一个大的权值点深度越深,则它被求sum的次数就越多,所以我们就往这个方向靠,求出每个点的深度,深度越深,则赋予其越大的权值,最后累加求和即可。我们发现,当前分成k组时,如果某种元素个数k,则该种元素的造成的影响是k-1,累加即可。tag:贪心,dfs,bfs,树形DP。
2023-01-23 17:40:33
2406
2
原创 【题解】2023牛客寒假算法基础集训营1
我写的比较麻烦,分成了九个部分分别枚举不同情况求解,分子分母同时加一个数越接近整数1,所以尽可能选取大的面积,求出来的IOU就尽可能大。至少H篇论文的引用大于等于H,所以一篇论文最大贡献也是1,考虑论文数和人数一样,每个人分配一篇论文就好了,记录0的个数。暴力枚举,判断当前剩余场次是否足够翻盘,如果满足则继续枚举,不满足则直接break输出当前场次。凑出尽可能多的一个1两个0的子串,尽量让第一个1处于最左端,否则会浪费0,所以构造出。多一块权值+1,少一块权值-1,所以直接用总面积减去已知面积即可。
2023-01-18 22:21:49
2193
原创 【算法课设】贪心算法求解汽车加油问题
一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。加油站之间的距离由数组A[m]给出,其中A[i]表示第i-1个加油站和第i个加油站之间的距离。旅途的起点都各有一个加油站。设计一个有效算法,计算沿途需要停靠加油的地方,使加油的次数最少。
2022-11-30 01:40:02
1324
原创 传智杯初赛A~D题解
模拟题,二分找一下在哪个区间,每个区间分成四段模拟一下。tag:双指针+贪心。按要求if else 即可。高精度加法,只不过对于第。假设最优区间值域范围是。
2022-11-28 02:14:32
1004
原创 牛客小白月赛62题解
从l到r挨个%x后 必定有一个数z%x等于y(因为x≤(r-l+1))对于A数组分解质因数,然后用数组B的每个元素的质因子看是否在A中能找到。模拟一下即可,注意第m天中午就是第m-1的最终状态。一棵满K叉树的结点个数:(1-k^n)/(1-k)上面讨论的是sum%x!题目隐含条件是这棵树是一颗完全二叉树。那么这道题就可以转换成一道数学题了。sum%x=0直接就0就好了。注意前缀和时不是回溯,是递归。则最后只会剩下这个z。树形差分维护一下即可。
2022-11-26 14:09:27
1181
原创 算法设计(一) : 搜索算法实现八皇后问题
N皇后下面分析中的(x,y)(x,y)(x,y)相当于上面的(u,i)(u,i)(u,i)反对角线 y=x+by=x+by=x+b, 截距 b=y−xb=y−xb=y−x,因为我们要把 bbb 当做数组下标来用,显然 bbb 不能是的,所以我们(实际上+n+4+n+4+n+4,+2n+2n+2n都行),来保证是结果是正的,即 y−x+ny - x + ny−x+n而对角线 y=−x+by=−x+by=−x+b 截距是 b=y+xb=y+xb=y+x,这里截距一定是的,所以核心目的:找一些合
2022-10-17 22:59:23
1388
1
原创 AcWing第 72 场周赛题解
高的,所以我们先根据性价比对其进行从大到小排序,最后枚举最少需要压缩文件的个数,这里可以用。压缩的前半段+没压缩的后半段,直到w
2022-10-09 10:33:11
502
原创 leetcode 第 313 场周赛题解
先求出num2的置位数,由于要求最小的(x^num1),所以x的高位1尽量与num1的高位1一致,如果还有剩余的1,则从右往左将x的0变成1。状态转移:dp[i]=max(dp[i],dp[i+j]+1);开始删除字符串所需要的最大步数。字符串哈希+记忆化搜索。
2022-10-02 16:48:01
533
原创 AcWing第 71 场周赛题解
如果是质数,直接返回1—>想办法把这个数拆成尽可能少的质数—>哥德巴赫猜想—>奇偶分类讨论。直接暴力避免不了TLE。发现在钱数过多时某系列”轮“是重复的,利用这一点对其进行优化。任意一个大于 4 的偶数都可以拆成两个奇素数之和。
2022-10-01 23:27:42
257
原创 力扣第 312 场周赛题解
2. 通过并查集将符合条件的点合并在同一个集合,用hash存每个集合中的点。路径的起点与终点的权值相等,并且路径中其余各点都小于等于起点与终点的权值。最大与值等于数组的最大值,求与最大值相等的最长连续子段的长度。用两个数组分别存它前边和后边与之相连非递增非递减数的个数。对于相同权值的点可以作为起点与终点,如图中的。个点合并路径一共有C(k,2)+k种。为起点终点的路径上的其余节点只能是。根据题意直接枚举排序即可。
2022-09-25 18:30:37
628
原创 AcWing第 70 场周赛题解
暴力枚举判断即可4619. 减法操作第一种操作把相邻两个数-1,第二种操作时对任意一个数-2要使所有数字都变成0。我们先将数组中的所有奇数都先想办法编程偶数,如果都变成偶数则再使用操作二就能满足条件,否则不满足。所以题目的关键在于如何尽可能使用第一种操作使数组元素都变成偶数。4620. 旅行前置知识:树形dp,树的最长路径,维护最长和次长权值。1.题目分析:题目有个限制条件其实是用来迷惑我们的。即:在经过任何一条边之前,你的现有能量都不能少于该边所需消耗的能量(否则,将无法顺利通过该边)
2022-09-25 17:59:25
368
原创 关于回溯求排列组合的碎碎念
其实这个题,和第一题不同点主要在于这个题枚举的是空位,如果出现同一个位置可以放相等数字的时候,应当把其删除。,[1,2]与[2,1]是不同的,所以这里不需要从start开始枚举,那么去重到底去的是什么呢?首先能看出来这个题是一个“完全背包问题”求具体方案,我们用暴力dfs来做。第二个细节:[1,1,6],sum=7,结果只能是[1,6],所以这里还有一个去重。枚举枚举空位的话,没有办法按照题目的要求进行去重。枚举数组中的每一个数字,然后枚举每一个数字的个数。目的是为了防止选取前边的数造成重复。
2022-09-23 01:20:16
232
原创 Codeforces Round #821 (Div. 2)A~D1
【代码】Codeforces Round #821 (Div. 2)A~D1。
2022-09-20 14:57:18
256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人