合集-小蒟蒻的算法分享

摘要:一、基本概念 动态规划(dynamic programming)是 运筹学 的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初 美国 数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题 阅读全文
posted @ 2024-02-17 15:20 __kw 阅读(62) 评论(1) 推荐(2) 编辑
摘要:01背包问题(每个物品最多选一次) AcWing 2. 0/1背包问题 朴素の版本: #include <bits/stdc++.h> using namespace std; const int N=1010; int vi[N],wi[N],f[N][N]; int n,v; int main( 阅读全文
posted @ 2024-02-17 16:56 __kw 阅读(43) 评论(0) 推荐(1) 编辑
摘要:一.概念 具有线性阶段划分的动态规划算法叫作线性动态规划(简称线性DP)。若状态包含多个维度,则每个维度都是线性划分的阶段,也属于线性DP,如下图所示: 二.线性dp的三大经典例题 1.LIS问题:求最长上升子序列 给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一 阅读全文
posted @ 2024-02-17 17:28 __kw 阅读(187) 评论(0) 推荐(2) 编辑
摘要:区间dp: 就是对于区间的一种动态规划,对于某个区间,它的合并方式可能有很多种,我们需要去枚举所有的方式,通常是去枚举区间的分割点,找到最优的方式(一般是找最少消耗)。 通常都是先枚举区间长度,区间长度为1就不用合并,所以从2开始枚举,然后枚举左端点,那么右端点就为左端点加区间长度-1,再枚举分割点 阅读全文
posted @ 2024-02-17 18:10 __kw 阅读(77) 评论(0) 推荐(2) 编辑
摘要:传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵, 而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。 纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐 阅读全文
posted @ 2024-02-17 20:29 __kw 阅读(26) 评论(0) 推荐(2) 编辑
摘要:题目描述 HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。 HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳? 这个问题很难回答。。。因为项链实在是 阅读全文
posted @ 2024-02-19 07:10 __kw 阅读(23) 评论(0) 推荐(0) 编辑
摘要:样例 样例输入 5 5 1 2 3 4 5 1 1 3 1 3 5 0 3 6 1 1 3 1 3 5 样例输出 0 2 5 7 数据范围与提示 对于100%的数据 0<n<10^5,0<m<10^5,0<ai,y<10^9,1<x,l,r<n 对于40%的数据 0<n<1000,0<m<1000 阅读全文
posted @ 2024-02-19 08:08 __kw 阅读(51) 评论(5) 推荐(0) 编辑
摘要:线段树常见操作 build 建树 update 更新 query 查询 pushup 向上回溯 pushdown 向下延迟更新(延迟标记) 建线段树: //预编译命令,做符号代换 #define lson (gjd<<1) #define rson (gjd<<1|1) //gjd表示当前结点,[l 阅读全文
posted @ 2024-02-20 17:50 __kw 阅读(17) 评论(0) 推荐(1) 编辑
摘要:题目描述 有消息称:绝恋找到了自己的Miss Right,正准备自己的表白。绝恋已经写好了情书,但为了避免其它人截获,他对情书进行加密。 为了打探绝恋的私密,你冒着生命危险终于搞到了这封情书。原以为可以轻易将情书解密,结果竟然发现聪明的绝恋并没有直接写出加密用的密码, 而是在那粉红色的信纸背面写着“ 阅读全文
posted @ 2024-02-20 18:06 __kw 阅读(27) 评论(0) 推荐(1) 编辑
摘要:思路: 题目意思是求平均数>=k的最长序列先求出a[i]-k的前缀和就是求sum[i]-sum[j]>=0的最大i-j当j<=k<=isum[j]<=sum[k]j<=k<=isum[j]<=sum[k]更新i的时候,k就不如j优所以处理出来一个单调上升的数组(stak),那答案就在里面选倒序更新, 阅读全文
posted @ 2024-02-22 10:54 __kw 阅读(8) 评论(1) 推荐(0) 编辑
摘要:树形dp,又称树状dp,即在树上进行的dp,在设计动态规划算法时,一般就以节点从深到浅(子树从小到大)的顺序作为dp的“阶段”,dp的状态表示中,第一维通常是节点编号(代表以该节点为根的子树)。大多数时候,我们采用递归的方式实现树形动态规划。对于每个节点x,先递归在他的每个子节点上进行dp,在回溯时 阅读全文
posted @ 2024-02-17 20:50 __kw 阅读(17) 评论(0) 推荐(2) 编辑
摘要:T1:绑腿跑 题目描述 HZOI 有 N 个小盆友,每天他们都会按同样的站位顺序进行各项体育活动。 一天,HZOI的首领决定组织一个“绑腿跑”的比赛。为了安全起见,首领会从他们当前的队列中选出一个连续的区间来进行这个比赛。 但是,众所周知,如果参加比赛的小盆友要玩得开心,而且安全的话,那么参加比赛的 阅读全文
posted @ 2024-02-23 19:31 __kw 阅读(19) 评论(1) 推荐(0) 编辑
摘要:Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量 相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条 阅读全文
posted @ 2024-03-02 16:10 __kw 阅读(22) 评论(0) 推荐(1) 编辑
摘要:Farmer John变得非常懒, 他不想再继续维护供奶牛之间供通行的道路. 道路被用来连接N 个牧场, 牧场被连续地编号为1..N..每一个牧场都是一个奶牛的家. FJ计划除去P条道路中尽可能多的道路, 但是还要保持牧场之间的连通性. 你首先要决定那些道路是需要保留的N-1条道路. 第j条双向道路 阅读全文
posted @ 2024-03-06 16:36 __kw 阅读(18) 评论(0) 推荐(2) 编辑
摘要:输入格式 第一行是两个整数n(1≤n≤100)和p。 接下来n行,每行两个整数,第i+1行是神经元i最初状态和其阈值(Ui),非输入层的神经元开始时状态必然为0。 再下面P行,每行由两个整数i,j及一个整数Wij,表示连接神经元i、j的边权值为Wij。 输出格式 输出文件包含若干行,每行有两个整数, 阅读全文
posted @ 2024-03-08 09:31 __kw 阅读(51) 评论(1) 推荐(2) 编辑
摘要:思路:这道题给出的公式看明白后即可得出正解,我们可以把他想象成一颗二叉树,任意一个点的任意一个子孙一直除以2后最终都会到达一终点,终点则为以该点为根的子树的最小值。 so——我们可以将根节点作为最后终点即最小值1,设有n个点,左子树选m个点,剩下的给右子树,左子树组合数即C(n-1,m),and就可 阅读全文
posted @ 2024-04-13 19:24 __kw 阅读(29) 评论(0) 推荐(3) 编辑
摘要:先上头图: 诈骗题认真读题 c<=7 只需要考虑前七个操作 一.动态开点即可 二.线段树合并 三.四.对于这两个操作,可以先统计出有多少个数小于/大于x,然后删除所有小于/大于x的数,并在x位置加上这些数 五.下放标记查询即可 六.每个数最大为1e9,直接乘肯定会炸,所以可以用double存它们的对 阅读全文
posted @ 2024-05-10 15:58 __kw 阅读(20) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示