随笔分类 -  做题报告(2023+)

摘要:P4017 最大食物链计数 记忆化搜索 DP 角度解 从捕食者向被捕食者建边 维护每个生物的捕食 eat,和被捕食数量 beat。 对每一个食物链顶端 dfs,向下搜索直到找到最低级的生物,记忆化当前结点对应的食物链长度。 #include <iostream> #include <algorith 阅读全文
posted @ 2023-11-29 14:26 加固文明幻景 阅读(51) 评论(0) 推荐(0)
摘要:P5318 【深基18.例3】查找文献 基本思路 邻接表实现,结果得为了边有序再专门开一个 vector 预处理完再存边。 而且一开始忘记 vis[1] = true 了! #include<iostream> #include<algorithm> #include<cstdio> #includ 阅读全文
posted @ 2023-11-28 20:25 加固文明幻景 阅读(51) 评论(0) 推荐(0)
摘要:P1955 [NOI2015] 程序自动分析 基本思路 考虑到了不等号的不可传递性,所以决定只开相等的并查集。 然后突发奇想,觉得可以在找父亲的过程中判断是不是冲突。 然而这样就不能路径压缩,显然超时。 并且,根本没看清楚数据范围,实际上这题的数很大,裸开数组会爆炸。 这是一开始的代码 #inclu 阅读全文
posted @ 2023-11-28 19:25 加固文明幻景 阅读(86) 评论(0) 推荐(0)
摘要:P3879 TJOI2010 阅读理解 基本想法 开一个 map 组成的数组,然后每篇文章分配一个 map。查找的时候在每次都跑一遍。 显然 MLE 了。 改进 既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个 map<string, vector<int>>。 但是同一篇文章 阅读全文
posted @ 2023-11-28 16:08 加固文明幻景 阅读(18) 评论(0) 推荐(0)
摘要:P1364 医院设置 存树 struct Node { int left, right, father, value; } t[MAXN]; int main() { for (int i = 1; i <= n; i++) { cin >> t[i].value >> t[i].left >> t 阅读全文
posted @ 2023-11-24 19:40 加固文明幻景 阅读(13) 评论(0) 推荐(0)
摘要:P2234 [HNOI2002] 营业额统计 题解思路 对原数组排序,记录下排序前的位置。 对排序后的数组构造链表。 从原数组的 \(n\) 往 \(1\) 枚举,比较排序生成链表中该元素的前驱或后继与该元素差值的最小值,加入答案。 在排序生成的链表中删除该元素。 正确性的疑惑 一开始很困惑,难道排 阅读全文
posted @ 2023-11-21 22:58 加固文明幻景 阅读(47) 评论(0) 推荐(0)
摘要:P1241 括号序列 RE一半 #include<iostream> #include<algorithm> #include<cstdio> #include<stack> using namespace std; string s; char ans[400]; bool vis[400]; i 阅读全文
posted @ 2023-11-21 15:02 加固文明幻景 阅读(29) 评论(0) 推荐(0)
摘要:P4170 [CQOI2007] 涂色 基本思路 很容易口胡一个状态。 \(F_{l,r}\) 表示 \(ch_l\) 到 \(ch_r\) 的最小操作次数。 然而转移就开始满头大汗。 状态转移 只想到 \(F_{i,i} = 1\) 以及肯定有 \(F_{l,r} = \min(F_{l,r}, 阅读全文
posted @ 2023-11-20 11:09 加固文明幻景 阅读(22) 评论(0) 推荐(0)
摘要:P9242 [蓝桥杯 2023 E题] 接龙数列 一眼LIS 但是TLE八个点。 发现是sb了,应该用string来存数直接取首位末位。 改完50分,TLE五个点。 换状态 \(F_i\) 为以数字 \(i\) 结尾的最长接龙数列。 则顺推每个数字,从每个数字的首位 \(F_{j_1} + 1\) 阅读全文
posted @ 2023-11-16 12:23 加固文明幻景 阅读(97) 评论(0) 推荐(0)
摘要:P4310 绝世好题 基础思路 类似 \(LIS\)。但只有 \(80pts\) for(int i=1;i<=n;++i) { for(int j = 1; j < i; ++j) { if(s[i]&s[j])f[i]=max(f[i],f[j]+1); } } 优化时间 一种很妙的剪枝。 因为 阅读全文
posted @ 2023-11-15 16:43 加固文明幻景 阅读(32) 评论(0) 推荐(0)
摘要:P1854 花店橱窗布置 初始思路 状态方程 \(F_{i, j}\) 为前 \(i\) 种花,装在前 \(j\) 个花瓶内的最大美学值。 状态转移 \[F_{i, j} = \max(F_{i, j}, F_{i - 1, k} + a_{i, j}) j \in [i, v - (f - i)] 阅读全文
posted @ 2023-11-15 11:50 加固文明幻景 阅读(55) 评论(0) 推荐(0)
摘要:P1004 [NOIP2000 提高组] 方格取数 基本思路 我想的是搞两次二维 DP 第一次搞完之后把走过的删掉,然后搞第二次,然而只有 \(80pts\) #include<iostream> #include<algorithm> #include<cstdio> using namespac 阅读全文
posted @ 2023-11-14 19:22 加固文明幻景 阅读(39) 评论(0) 推荐(0)
摘要:P4933 大师 基础思路 状态设置 \(F_{k,i}\) 表示公差为 \(k\) 前 \(i\) 个电塔的等差数列数。 两个 \(F\) 一个公差为 \(k\),一个为 \(-k\)。 状态转移 对于\(F_{k, i}\),从所有在 \(i\) 之前的的与第 \(i\) 个电塔差为 \(j\) 阅读全文
posted @ 2023-11-14 17:53 加固文明幻景 阅读(40) 评论(0) 推荐(0)
摘要:动态规划思路 可行性 抛开取模问题和空间限制,该题存在最优子结构性和无后效性,而这两个问题都可以另外处理。 状态定义 \(F_{i,j}\) 为前 \(i\) 棵树,剩余 \(j\) 单位化肥时的最大覆盖距离。 状态转移 先忽略取模问题 推导状态转移方程 不选择对当前第\(\space i\spac 阅读全文
posted @ 2023-11-11 18:45 加固文明幻景 阅读(57) 评论(0) 推荐(0)
摘要:导弹拦截 被19年薄纱了。 嗯造两个小时,44pts。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1e5 + 10; 阅读全文
posted @ 2023-11-11 10:31 加固文明幻景 阅读(19) 评论(0) 推荐(0)
摘要:P1509 找啊找啊找GF 次要性动态规划 概念 次要性dp是指,在使得一个条件到达最优的情况下,让第二个条件也达到最优,在第二个条件也达到最优时,让第三个条件也最优... 这种分先后次序(或者说分主次)依次达成最优解的动态规划,被称为 次要性dp 思路 确定优化目标 让女朋友最多。 在女朋友最多的 阅读全文
posted @ 2023-11-09 07:42 加固文明幻景 阅读(25) 评论(0) 推荐(0)
摘要:P1877 HAOI2012 音量调节 可行性背包 思路 把状态方程的性质设置为可行性,即要么可行,要么不可行。 定义状态方程\(F[i][j]\)表示前\(i\)首歌能否到达音量\(j\)。 那么状态转移方程则是 \(F[i][j] = F[i][j] || F[i - 1][j - w[i]]\ 阅读全文
posted @ 2023-11-08 20:31 加固文明幻景 阅读(16) 评论(0) 推荐(0)
摘要:P5322 BJOI2019 排兵布阵 基本思路 一眼背包,然后无脑套01,样例也过了,直接提交,40pts。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace 阅读全文
posted @ 2023-11-08 16:51 加固文明幻景 阅读(26) 评论(0) 推荐(0)
摘要:P5662 CSP-J 2019 纪念品 基本思路 状态方程 满头大汗地想了一个半小时,推导出一个可行的状态方程。 \(F[i][j][k]\)表示第\(i\)天,前\(j\)种纪念品,花费\(k\)金币所能得到的第二天最大卖出价格 状态转移 首先第一维明显可以用滚动数组优化。 然后就是枚举\(k\ 阅读全文
posted @ 2023-11-07 15:42 加固文明幻景 阅读(122) 评论(0) 推荐(0)
摘要:P5365 SNOI2017 英雄联盟 基本思路 刚洗完澡做的,脑子转不动了。 疑似开始自动化思考了,状态转移方程是这一坨$F[i][j] *= F[i - 1][j - k * w[i]]$ 事实上根本不对。首先当前的方案数完全没有体现出来,只乘了之前的方案数,而且这是一个最优性问题,不是计数问题 阅读全文
posted @ 2023-11-06 21:22 加固文明幻景 阅读(45) 评论(0) 推荐(0)