上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: 1202 子序列个数 设 \(dp[i]\) 为第i个数不同子序列个数,先不考虑重复的情况,每个数只有选不选,转移方程为 \(dp[i]=dp[i-1]\times 2\),但现在我们要求的是不同的子序列个数,因此要减去重复的子序列个数。对于选取了 \(a_i\) 的子序列,会出现重复的序列一定是以 阅读全文
posted @ 2024-09-09 07:57 sad_lin 阅读(13) 评论(0) 推荐(0)
摘要: 因为边权递增,按最小生成树的顺序 dp,设状态 \(dp[i]\) 为 \(i\) 点的最长路径长度,但是需要单调递增,所以考虑可以同时更新(先将原dp数组储存下来,再用新数组的值更新原 dp 数组),答案为 \(max(dp[i])\)。 #include<bits/stdc++.h> using 阅读全文
posted @ 2024-09-09 07:12 sad_lin 阅读(26) 评论(0) 推荐(0)
摘要: 3188 字符王国 建图,有环输出-1,无环按照拓扑序dp,设状态为 \(dp[i][j]\) 第 \(i\) 个点,\(j\) 的字符的出现的最大次数,最后遍历每个点找到最大答案。 #include<bits/stdc++.h> using namespace std; #define ll lo 阅读全文
posted @ 2024-09-09 06:29 sad_lin 阅读(8) 评论(0) 推荐(0)
摘要: 51nod 1791 原题链接 因为在括号串固定的情况下,括号的匹配是固定不变的。所以对左括号进行匹配,p[i]表示与i这个括号相匹配的括号的位置,易得到dp方程 ans[i]=ans[p[i]+1]+1,然后再从后先前一遍求和即可。 #include<bits/stdc++.h> using na 阅读全文
posted @ 2024-09-08 20:34 sad_lin 阅读(14) 评论(0) 推荐(0)
摘要: 51nod 1201 整数划分 设状态 \(dp[i][j]\) 为和为 \(i\) 时,选择的最大值为 \(j\) 的方案数,所以有转移方程 \(dp[i][j]=dp[i-j][j-1]+dp[i][j-1]\) 有点坑,先枚举 \(j\) 后枚举 \(i\)。 复杂度为 \(O(n^2)\)。 阅读全文
posted @ 2024-09-08 18:20 sad_lin 阅读(21) 评论(0) 推荐(0)
摘要: 可以发现步数限制把数轴变为了环。环之间不可以交换,环内相邻两点可以交换,然后我们只需要对每个环操作,最后累加。 对于环上的每个石子堆,我们需要将其石子数调整到均值 \(avg\)。因此,我们首先计算每个堆石子相对于 \(avg\) 的偏差,即 \(nowa[i] - avg\)。 因为相邻节点不一定 阅读全文
posted @ 2024-09-08 16:59 sad_lin 阅读(17) 评论(0) 推荐(0)
摘要: 其他学习笔记 这题真是凝聚了很多精华,那么我们就介绍这题的四兄弟: 大哥 平均数 这道题是其他兄弟的基础。 二哥 Best Cow 这位更是重量级,因为没特长只能强大哥的外貌,会大哥即识二哥。 三哥 PROSJEK 这位哥看似有点创新却仍没逃过一家子的基因,只是变为了小数运算。 四哥 寻找段落 作为 阅读全文
posted @ 2024-09-08 15:42 sad_lin 阅读(11) 评论(0) 推荐(0)
摘要: 前置 博客学习 \(P(A∩B)\) 表示事件 \(𝐴\) 和事件 \(𝐵\) 同时发生的概率 条件概率: 条件概率是指事件 \(A\) 在另外一个事件 \(B\) 已经发生条件下的发生概率。条件概率表示为:\(P(A|B)\),读作“在B的条件下A的概率”。——《百度百科》 条件概率: \[P 阅读全文
posted @ 2024-09-07 09:59 sad_lin 阅读(70) 评论(0) 推荐(1)
摘要: 51nod 3145 扔球游戏 终于听懂了一个期望题。 第 \(i\) 个位 \(0\) 的概率 \(\frac{n}{n+m}\),第 \(i+1\) 位为 \(1\) 的概率为 \(\frac{m}{n+m-1}\),然后一共有 \(n+m-1\) 个 \(i\),所以期望为 \(\frac{n 阅读全文
posted @ 2024-09-07 08:22 sad_lin 阅读(11) 评论(0) 推荐(0)
摘要: 1639 绑鞋带 是个数学题。 先算全部的方案,1有5种选择,然后去掉2个还有3种选择,再去掉2个还剩1个,这就是全部方案 \(5+3+1\)。 再算合法方案,因为只能有一个环,1不能与2连,有4种选择,那1假如连4,那3的话不能连1,2,3,4,还剩2个头,\(4+2\)。 上述结论具有普遍性,全 阅读全文
posted @ 2024-09-06 17:22 sad_lin 阅读(7) 评论(0) 推荐(0)
摘要: 51nod 1110 距离之和最小 考虑贪心取中位数,因为中位数到左边的点和右边的点的个数相同,更合理,权值的话可以转化为一个单点,然后没了。 #include<bits/stdc++.h> using namespace std; #define ll long long int n; struc 阅读全文
posted @ 2024-09-06 15:31 sad_lin 阅读(12) 评论(0) 推荐(0)
摘要: 动态规划入门题 怎么看着有点像小木棍? 考虑朴素做法,我们设状态为 \(dp[i][j][k]\) 前 \(i\) 个钢筋,组成的第一根钢筋的长度为 \(j\),组成的第二根钢筋的长度为 \(k\),我们用状态储存这对组合有没有过,答案就是所有 \(j==k\) 中存在的最大的答案。 有动态转移方程 阅读全文
posted @ 2024-09-06 11:20 sad_lin 阅读(20) 评论(0) 推荐(0)
摘要: 整数分解为2的幂 这题非常厉害,建议认真看下去虽然我讲的也不好。 首先肯定先想到的是多重背包,可以把每个次幂当作物品,然后套板子。 但是这题有 \(O(n)\) 复杂度的做法,我们想如果一个数 \(i\) 是奇数,那他只能由 \((i-1)+1\) 转化过来(2的幂次只有1是奇数),那方案数就是 \ 阅读全文
posted @ 2024-09-06 09:30 sad_lin 阅读(27) 评论(0) 推荐(0)
摘要: 01 背包 \(n\) 件物品,每件物品有权值和重量,给出背包体积 \(V\),从这些物品中挑选若干件(只能选一次)放入背包,使得背包内物品的总重量不超过 \(V\),问能可以得到的最大权值。 设 \(dp[i][j]\) 选取前 \(i\) 件物品重量为 \(j\) 能取得的最大的权值,可以得到转 阅读全文
posted @ 2024-09-05 21:35 sad_lin 阅读(16) 评论(0) 推荐(1)
摘要: P1337 吊打XXX SA 无疑就这几个步骤。 设初温 t; 降低系数 down<1 设定阈值 更劣随机概率选择(温度越低,概率越低) AI 评价: #include<bits/stdc++.h> using namespace std; #define down 0.996 //降低系数 int 阅读全文
posted @ 2024-09-05 16:15 sad_lin 阅读(15) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 下一页