随笔 - 532  文章 - 0  评论 - 3  阅读 - 10867 

随笔分类 -  dp

上一页 1 ··· 4 5 6 7 8 9 10 下一页
uva 1169
摘要:地图上有n个点(x,y),机器人从(0,0) 出发到每个点捡垃圾(w[i]) ,承载最大重量为m 在每个点都可以返回(0,0)点放置垃圾 最短路程? n<1e5,m<100 看完范围只能设 f[i] ,考虑前i个点,返回原地所走的最短路程, d[i] = min{ d[j] + dis0(j+1) 阅读全文
posted @ 2022-10-27 22:22 towboat 阅读(19) 评论(0) 推荐(0) 编辑
uva 10891
摘要:A,B两人从序列两端轮流取数,每次可以取多个(甚至取完) 分数为所取数字的和,假设两人足够聪明,求得分差 f[i][j] 区间[i,j] ,先手取得最大得分 转移到取完后对方的序列 f[i][j] = s[i][j] - min{ f[i][k] , f[k2][j] } #include <ios 阅读全文
posted @ 2022-10-27 21:24 towboat 阅读(10) 评论(0) 推荐(0) 编辑
uva 10635
摘要:两个数组a,b,首元素都为1,a[i] b[i]<=K^2 求最长公共子序列的长度 暴力LCS会T,但注意 两个序列的元素都 <=K^2 对b[i] 找到 a[j] 配对(不存在为0) ,构造一个新序列,变为求LIS #include <iostream> #include <cstring> #i 阅读全文
posted @ 2022-10-27 17:13 towboat 阅读(16) 评论(0) 推荐(0) 编辑
一本通 1266
摘要:总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M 虽然是水题,恰巧写一下这种类似背包输出具体方案 阅读全文
posted @ 2022-10-26 21:26 towboat 阅读(6) 评论(0) 推荐(0) 编辑
牛客 股票买卖的最佳时机
摘要:已知每支股票的价格序列 a , 进行若干次买卖( 一次买卖的收益a[j] - a[i] ) 求最大收益 f[i][0/1] #include <iostream> #include <vector> #include <cstring> using namespace std; const int 阅读全文
posted @ 2022-10-26 10:59 towboat 阅读(17) 评论(0) 推荐(0) 编辑
luogu 2344
摘要:给一个序列划分为若干组,每组的和 S>=0, 问方案数 首先是暴力dp for(i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i]; f[0]=1; for(i=1;i<=n;i++) for(j=0;j<i;j++) if(s[i]>=s[j]) f[i]+=f[j] 阅读全文
posted @ 2022-10-23 23:42 towboat 阅读(11) 评论(0) 推荐(0) 编辑
luogu 3004
摘要:小 A 和小 B 在玩游戏。 初始时,有 nn 个硬币被摆成了一行,从左至右数第 ii 个硬币的价值为 c_ici​。 小 A 和小 B 每人一回合,在一个人的回合中,他可以选择当前硬币序列最左侧或者最右侧的硬币,并将他从序列中取出,将其价值累加到自己获得的累计价值中,然后进行另一个人的回合。当硬币 阅读全文
posted @ 2022-10-23 20:11 towboat 阅读(16) 评论(0) 推荐(0) 编辑
luogu 2592
摘要:n个男生,m个女生排成一排,要求任意子段 中男女生的个数差 <=K 方案数? f[i][j][k][l] 目前i个男生,j个女生,个数差值为 k 和 l 转移很明显, 但最好用刷表法 #include <iostream> #include <cstring> #include <cmath> us 阅读全文
posted @ 2022-10-23 17:26 towboat 阅读(19) 评论(0) 推荐(0) 编辑
luogu 1336
摘要:#include <iostream> #include <cstring> #include <cmath> using namespace std ; const int N=203; #define int long long int a[N],b[N],n,m,f[N][2002]; int 阅读全文
posted @ 2022-10-23 14:20 towboat 阅读(6) 评论(0) 推荐(0) 编辑
luogu 4909
摘要:科罗拉多州的山脉是二维平面上的一条折线。这条折线由 NN 个端点,N−1N−1 段线段组成,第 ii 个端点的横坐标就是 ii,纵坐标是 H_iHi​,纵坐标代表高度,也可以称为海拔。 罗恩打算为奶牛建造一个滑雪场,为此要在山脉上规划一条缆车线路。缆线也是一条折线,由若干段缆绳组成,起点在山脉的第一 阅读全文
posted @ 2022-10-23 13:32 towboat 阅读(11) 评论(0) 推荐(0) 编辑
luogu 4084
摘要:给树的点染色,颜色有3种,相邻的点颜色不同 某些点已经染色 方案数? #include <bits/stdc++.h> using namespace std ; const int N=1e5+2,M=5*N; #define int long long const int mod=1e9+7; 阅读全文
posted @ 2022-10-23 11:40 towboat 阅读(13) 评论(0) 推荐(0) 编辑
luogu 1156
摘要:奶牛从井(H) 里往上爬,初始能量10, 有n个物品,可以用来堆叠(h[i]) 或者补充能量( w[i] ), 出现的时刻tm[i] 奶牛逃出去最少花费时间? 状态 f[i][j] 前i个物品, 此时高度为j 时 ,最大的能量 【因为高度范围明显(划掉 转移方程 f[i][j] = max( f[i 阅读全文
posted @ 2022-10-23 10:52 towboat 阅读(12) 评论(0) 推荐(0) 编辑
luogu 1282
摘要:对每个i ,从 a[i] b[i] 选一个 若选择 a[i] ,不贡献答案; 否则答案+1 在 sum{ a } -sum{ b } 最小的前提下,求出最小的答案 背包 #include <iostream> #include <algorithm> #include <cstring> using 阅读全文
posted @ 2022-10-23 00:24 towboat 阅读(16) 评论(0) 推荐(0) 编辑
luogu 2389
摘要:对序列{a} ,选择m个连续段,求总和最大 O(n^3) const int N=1e3; int a[N],s[N],n,m,f[N][N]; int sum(int i,int j){ return s[j]-s[i-1]; } void solve(){ int i,j,k; for(i=1; 阅读全文
posted @ 2022-10-22 21:56 towboat 阅读(22) 评论(0) 推荐(0) 编辑
luogu 2854
摘要:n条线段( 起点,终点,价值,费用) ,选择一些来覆盖 [0,L],注意所选线段不能相交 使价值之和最大? 背包题,而且背包体积要刚好用完 状态第一维放当前的位置(如果放线段编号,emmm好像没法做 f[a[i].y][j]=max(f[a[i].y][j],f[a[i].x][j-a[i].w]+ 阅读全文
posted @ 2022-10-22 16:55 towboat 阅读(15) 评论(0) 推荐(0) 编辑
luogu 1280
摘要:f[i] 对于某个区间起点,状态转移到终点,要反过来枚举 i 方程不难想,两种情况 f[i] =max{ f[i+len[j] ] } f[i]= f[i+1]+1 #include <iostream> #include <algorithm> #include <cmath> using nam 阅读全文
posted @ 2022-10-22 13:57 towboat 阅读(14) 评论(0) 推荐(0) 编辑
luogu 2426
摘要:很水的区间dp #include <iostream> #include <cstring> #include <cmath> using namespace std ; const int N=502; int n,a[N],f[N][N]; int func(int l,int r){ if(l 阅读全文
posted @ 2022-10-22 12:12 towboat 阅读(7) 评论(0) 推荐(0) 编辑
luogu 5020
摘要:两个货币系统 (n,a)(n,a) 和 (m,b)(m,b) 是等价的,当且仅当对于任意非负整数 xx,它要么均可以被两个货币系统表出,要么不能被其中任何一个表出。 现在网友们打算简化一下货币系统。他们希望找到一个货币系统 (m,b)(m,b),满足 (m,b)(m,b) 与原来的货币系统 (n,a 阅读全文
posted @ 2022-10-21 21:37 towboat 阅读(15) 评论(0) 推荐(0) 编辑
luogu 1107
摘要:有n个高度都为h的树(b[i]) ,树上的一些高度处有若干果实(比如b[i][h]==3) ,猫从任意的树顶部出发,可以 1.跳到任意其他的树上,高度将下降D 2.向下滑1个单位 问最多获得多少果实? 明显的dp 暴力程序 O(n^3) #include <iostream> #include <a 阅读全文
posted @ 2022-10-21 20:42 towboat 阅读(17) 评论(0) 推荐(0) 编辑
luogu 2513 逆序对数列
摘要:对于1~n的整数组成的的排列,其中逆序对数为K的排列有几种 比如n=4,K=1时 下列3个数列逆序对数都为1, 1 2 4 3 ;1 3 2 4 ;2 1 3 4; f[i][j] 表示 1~i 的整数组成排列, 逆序对数为 j ,的排列个数 将第i个数字插入前i个位置中 ,可能产生 0~i-1 个 阅读全文
posted @ 2022-10-21 14:47 towboat 阅读(19) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 下一页
点击右上角即可分享
微信分享提示