随笔分类 - 动态规划——线形/环形DP
摘要:Problem - 487B - Codeforces 题意: 一个n个数的数组,要求把他们划分为最少的连续段,满足: 1、每段长度至少为l 2、每段的最大值-最小值不超过s dp[i]表示前i个数最少要划分为多少段 枚举j(j<=i-l),若[j+1,i]的最大值-最小值不超过s,那么dp[i]=
阅读全文
摘要:http://www.51nod.com/Challenge/Problem.html#problemId=1051 枚举两行,中间的压成一维,做一维最大子段和 #include<cstdio> #include<cstring> #include<algorithm> using namespac
阅读全文
摘要:http://www.51nod.com/Challenge/Problem.html#problemId=1050 最大子段要么是连续的一段,要么是头尾两段。 连续的一段直接最大子段和 头尾两段的用总和减去最小子段和 一直在想断环为链。。僵化了。。 #include<cstdio> #includ
阅读全文
摘要:https://tianchi.aliyun.com/oj/15179470890799741/85251759933690470 数据范围比较小,可以想到枚举主题步行街的长度和颜色 nf[i][j]表示前i间房屋已染色,第i间房屋不染颜色j的最小花费 ng[i][j]表示第i间及其之后的房屋已染色
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/3004/J 我的思路: 维护到达每个路口的累计宝可梦战斗力递增序列,同时记录相应时间 每次转移的时候,枚举每个路口,二分找到时间允许的最靠后的(战斗力最大的)那个来转移 题解思路: 一共200个路口,最大距离199,所以抓的上
阅读全文
摘要:http://codeforces.com/contest/314/problem/E 题意: 原本有一个合法的括号序列 擦去了所有的右括号和部分左括号 问有多少种填括号的方式使他仍然是合法的括号序列 括号有25种,序列长度<=1e5 传统的做法: 令dp[i][j]表示当前到第i个字符,现在还有j
阅读全文
摘要:https://www.luogu.org/problemnew/show/P1052 当s!=t时,可以把相邻两石子>t的距离删掉,不影响答案 设两石子距离为 k*t+b,b∈[0,t-1] 当b!=0时,完全可以避开下一个石子 当b=0时,只要跳的不全是t就可以避开这个石子 题目描述 在河上有一
阅读全文
摘要:http://poj.org/problem?id=2373 题意: 在长为L的草地上装喷水头,喷水头的喷洒半径为[a,b] 要求草地的每个整点被且只被一个喷水头覆盖 有N个特殊区间,要求只能被某一个喷水头完整地覆盖,而不能由多个喷水头分段覆盖 求喷水头的最小数目 喷水头只能建在整数点上 f[i]
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2660 很容易想到是先把n表示成最大的两个斐波那契数相加,然后再拆分这两个斐波那契数 把数表示成斐波那契进制的形式,第i位表示有没有第i个斐波那契数 比如16=13+3 001001 那么拆分一个数就是
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1820 很容易想到dp[i][a][b][c] 到第i个收件地点,三个司机分别在a,b,c 收件地点的最少耗油量 枚举第i个收件地点有哪个司机过来转移 N*M*M*M= 8e9 TLE&&MLE 压去一
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1237 如果没有相同的数不能配对的限制 那就是排好序后 Σ abs(ai-bi) 相同的数不能配对 交换一些相邻数的位置,使他们不相同 只交换相邻两个的话: 1 2 3 1 2 3 这种情况不行 而至多
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/2687 求方案数: if(f[j]+1==f[i] && a[j]>a[i]) s[i]+=s[j]; 因为序列相同算作同一种方案,所以把相同序列都集中在第一次出现的地方 if(f[i]==f[j] && a[i]==
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1207 dp[i] 表示打的最后一只鼹鼠是第i只,最多能打多少只鼹鼠 输出max(dp[i]) 错解: 再加一个转移:dp[i]=max(dp[i],dp[i-1]); 输出dp[m] 错因: dp[i
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/2889 按右端点从小到大排序后DP dp[i] 到第i个时间段的最大产奶量 不能按左端点排序,第i段由第j段更新时,第j段可能没挤奶,i,j都处于第k(k<j)段之后的休息时间 题目描述 Bessie is such
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1791 就是求所有基环树的直径之和 加手工栈 #include<cstdio> #include<vector> #include<iostream> #include<algorithm> using
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1023 dp[x] 表示以x为端点的最长链 子节点与x不在同一个环上,那就是两条最长半链长度 子节点与x在同一个环上,环形DP,单调队列优化 对于每一个环,深度最小的那个点 有可能会更新 上层节点, 所
阅读全文
摘要:期望得分:30+50+30=110 实际得分:40+0+0=40 并查集合并再次写炸。。。 模拟更相减损术的过程 更相减损术,差一定比被减数小,当被减数=减数时,停止 对于同一个减数来说,会被减 第1次减这个减数的被减数/这个减数 次 然后这个减数成为被减数,减数变为 原被减数-k*原减数,即原被减
阅读全文
摘要:https://www.luogu.org/problem/show?pid=1282 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。例如在图8-1中,S1=6+1+1+1=9,S2=1+5
阅读全文
摘要:https://www.luogu.org/problem/show?pid=1514 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们
阅读全文
摘要:5分。。。。 T1 LOJ 计算几何瞎暴力 维护以下操作: 1、序列末尾加一个数 2、序列全体从小到大排序 3、查询区间和 4、序列全体异或一个数k 序列全体异或一个数,很明显是trie树 那么序列全体从大到小排序就是把一个个数插入trie树的过程 那么就需要一个数组,存储还没有插入trie树的数
阅读全文