随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

随笔分类 -  dp

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
P5665 [CSP-S2019] 划分
摘要:36分代码 f[i][j] =min(f[j-1][k]+ pow(s[i]-s[j]) ) #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=403; #defi 阅读全文
posted @ 2023-03-07 17:36 towboat 阅读(17) 评论(0) 推荐(0) 编辑
P3522 [POI2011]TEM-Temperature
摘要:n天的温度测量,测量存在误差,测量结果是第 i天温度在[ Li,Ri ] 求最长的连续的一段,满足该段内可能温度不降。 一个纯粹的单调队列 要满足 R[ i] >= max{ L[k] } j<=k<=i (维护一个L[i] 增的队列) #include<iostream> #include <al 阅读全文
posted @ 2023-03-07 12:55 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P2607 [ZJOI2008] 骑士
摘要:和<没有上司的舞会>一样,但树上多了条边 断掉环上一条边,两个点分别做dp ,取max #include <iostream> #include <algorithm> using namespace std ; const int N=1e6+5,M=2*N; #define int long l 阅读全文
posted @ 2023-03-06 20:13 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P4395 [BOI2003]Gem 气垫车
摘要:给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 考虑 j 为权值, 这个值不是1,2,但有个上界 logn ,ORZ F[u][ j ] += min(F[y][k]) #include <bi 阅读全文
posted @ 2023-03-06 17:11 towboat 阅读(20) 评论(0) 推荐(0) 编辑
P3047 [USACO12FEB]Nearby Cows G
摘要:一棵 n个点的树,点带权,对于每个节点求出距离它不超过 m 的所有节点权值和 S[i ] 换根dp 1. f[i][L] += f[y][L-1] 2 . g[i][L] =f[i][L] , g[i][L]+= g[fa][L-1] -f[y][L-2] (这个脑补一下图片, 换根dp是这样的) 阅读全文
posted @ 2023-03-06 16:17 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P2585 [ZJOI2006]三色二叉树
摘要:给一颗二叉树,每个点有3种颜色可以涂,但相邻的点不能同色,问最少能有几个绿色的点 f[i][1] = f[L][0]+f[R][0]+1 f[i][0] = max( f[L][0]+f[R][1] , f[R][0]+f[L][1]) for(i=n;i>0;i--){ f[i][1]=f[tr[ 阅读全文
posted @ 2023-03-06 15:01 towboat 阅读(7) 评论(0) 推荐(0) 编辑
P1273 有线电视网
摘要:f[u][j] =max( f[y][k] +f[u][j-k]- w[i] ) #include <bits/stdc++.h> using namespace std ; const int N=3002,M=N*5,inf=0x7f7f3f; int n,m,sz[N]; int a[N],n 阅读全文
posted @ 2023-03-06 14:01 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P3089 [USACO13NOV]Pogo-Cow S
摘要:FJ给奶牛贝西的脚安装上了弹簧,使它可以在农场里快速地跳跃,但是它还没有学会如何降低速度。 FJ觉得让贝西在一条直线的一维线路上进行练习, 他在不同的目标点放置了N (1 <= N <= 1000)个目标点,目标点i在目标点x(i),该点得分为p(i)。贝西开始时可以选择站在一个目标点上,只允许朝一 阅读全文
posted @ 2023-03-05 22:35 towboat 阅读(24) 评论(0) 推荐(0) 编辑
P1156 垃圾陷阱
摘要:卡门――农夫约翰极其珍视的一条 奶牛――已经落了到 “垃圾井” 中。它的深度为 DD(2≤D≤100)英尺。 卡门想把垃圾堆起来,等到堆得高度大等于于井的深度时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。 每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。 假设卡门预 阅读全文
posted @ 2023-03-05 21:13 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P5322 [BJOI2019] 排兵布阵
摘要:小 C 正在玩一款排兵布阵的游戏。在游戏中有 nn 座城堡, 每局对战由两名玩家来争夺这些城堡。每名玩家有 m名士兵,可以向第 ii 座城堡派遣 ai名士兵去争夺这个城堡,使得总士兵数不超过 m。 如果一名玩家向第 ii 座城堡派遣的士兵数严格大于对手派遣士兵数的两倍,那么这名玩家就占领了这座城堡, 阅读全文
posted @ 2023-03-05 20:53 towboat 阅读(23) 评论(0) 推荐(0) 编辑
P2946 [USACO09MAR]Cow Frisbee Team S
摘要:从序列A中选出一些数,使得总和为m的倍数,求有几种选法? f[i][j] ,考虑前i个,总和的余数为j 时的 方案数 (a[i]%m) f[i] [j ]+= f[i-1][j] +f[i-1][ j-a[i] ] #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2023-03-05 19:49 towboat 阅读(43) 评论(0) 推荐(0) 编辑
P3558 [POI2013]BAJ-Bytecomputer
摘要:给定一个长度为 nn 的只包含 −1,0,1−1,0,1 的数列 A, 每次操作可以使 ai←ai+ai−1 , 求最少操作次数使得序列单调不降。 F [i] [3 ] 分类讨论 #include <iostream> using namespace std ; const int N=1e6+2, 阅读全文
posted @ 2023-03-05 17:04 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P4158 [SCOI2009]粉刷匠
摘要:windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? (一个格子如果未被粉刷或者被粉刷错颜色 阅读全文
posted @ 2023-03-05 16:09 towboat 阅读(14) 评论(0) 推荐(0) 编辑
P2679 [NOIP2015 提高组] 子串
摘要:两个仅包含小写英文字母的字符串 AA 和 BB。 现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的顺序依次连接起来得到一个新的字符串。 请问有多少种方案可以使得这个新串与字符串 BB 相等? 注意:子串取出的位置不同也认为是不同的 1) 阅读全文
posted @ 2023-03-05 13:40 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P3628 [APIO2010] 特别行动队
摘要:斜率优化还是挺板子的: 考虑 两个变量 j,k ,且 F( j ) >F( k ) ,化简得到一个斜率的市子。。 slope( i ,j ) 然后用单调队列维护 #include <iostream> #include <cstring> #include <queue> using namespa 阅读全文
posted @ 2023-03-04 17:47 towboat 阅读(14) 评论(0) 推荐(0) 编辑
AcWing 299. 裁剪序列
摘要:给定一个长度n的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过M 的前提下,让“每段中所有数的最大值”之和最小。 f[i ] =min( f[ j ]+ max{ a[k] , j<k<=i } ) ,s[ i ]-s[j] <=M 单调队列优化dp 待补 阅读全文
posted @ 2023-03-04 15:25 towboat 阅读(22) 评论(0) 推荐(0) 编辑
acwing 298 围栏
摘要:有 n块木板从左到右排成一行,有m M 个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。 第ii个木匠要么不粉刷,要么粉刷包含木板 pos[ i] 的,长度不超过 c[i] 的连续的一段木板,每粉刷一块可以得到 Y[i] 的报酬。 不同工匠的pos[i] 不同。 如何安排能使工匠们获得的总报酬最多 阅读全文
posted @ 2023-03-04 13:02 towboat 阅读(8) 评论(0) 推荐(0) 编辑
acwing 297 赤壁之战
摘要:给定一个长度为n 的序列 , 求 它有多少个长度为 m的严格递增子序列。 f[i][j] += f[i-1][k] (a[k]<a[i], k<i ) 优化 : 维护前缀和,根据a[k]<a[i] ,以a[ ] 为下标维护树状数组 , add(a[i] ,f[i-1][j] ) #include < 阅读全文
posted @ 2023-03-04 12:15 towboat 阅读(11) 评论(0) 推荐(0) 编辑
acwing 330. 估算
摘要:给定一个长度为 n的整数数组A ,你需要创建另一个长度n 的整数数组 B,数组B被分为 K个连续的部分,并且如果 X和y 在同一个部分,则 B[i]=B[j] b[x]= b[y] 如果要求数组 B 满足 sum{ abs(a[i] - b[i] ) } 最小,那么最小值是多少,请你输出这个最小值。 阅读全文
posted @ 2023-03-03 22:41 towboat 阅读(7) 评论(0) 推荐(0) 编辑
acwing 331 干草堆
摘要:给定n个数字,将它们分成连续的若干个区间。满足后一个区间中的数字之和一定不大于前一个区间中的数字之和。 求最多可以分成多少个区间。 除了f[ i] ,再记一个 g[i] ,表示最大序列和( 以i结尾) f [i] =max( f[j]+1) , j<i , g [j] < s[i]-s[j] #in 阅读全文
posted @ 2023-03-03 21:46 towboat 阅读(2) 评论(0) 推荐(0) 编辑

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