摘要:
Problem T1 累加燃烧度,除以 \(m\) 即为答案。 需要开 unsigned __int128,差评。 T2 若有 \(a,b\) 满足 \(a-c=c-b\),化简此式可得 \(a+b=2c\),说明 \(a+b\) 必须为偶数。 于是我们倒序求一遍后缀偶数个数 \(os_i\) 和奇 阅读全文
posted @ 2024-03-02 21:33
_KidA
阅读(34)
评论(0)
推荐(0)
摘要:
若某一位 \(i\) 上 \(A_i>B_i\),则显然无解。 否则,建立并查集,然后遍历字符串,若 \(A_i,B_i\) 不在一个集合就合并 \(A_i\) 与 \(B_i\),直到只剩下一个集合,此时的合并总次数即为答案。 为什么呢?因为将 \(A_i,B_i\) 合并的操作可以视为等价于将以 阅读全文
posted @ 2024-03-02 21:32
_KidA
阅读(23)
评论(0)
推荐(0)
摘要:
Problem T1 遍历字符串,拿一个桶统计即可。 T2 当 \(x\) 为中位数时,我们应当尽量的让整个数列的和变小,然后直接在最后一个上加即可。 为了让整个数列有序,和最小的构造的数列应当是 \(0,0,\cdot \cdot \cdot,x,x,\cdot \cdot \cdot,x\),此 阅读全文
posted @ 2024-03-02 21:31
_KidA
阅读(29)
评论(0)
推荐(0)
摘要:
Problem T1 \(m\) 个人中间必定有 \(m-1\) 个空位,剩下 \(n-m+1\) 个位置可以随意放人,则方案数为 \(A^{m}_{n-m+1}\)。 T2 考虑进行 \(dp\)。 状态:令 \(dp_{i,j}\) 表示字符串 \(S_{i \sim j}\) 要变成回文串需要 阅读全文
posted @ 2024-03-02 21:30
_KidA
阅读(35)
评论(0)
推荐(0)
摘要:
难度虚高,建议评橙 / 黄 qwq。 首先我们发现这是一道最短路问题,且 \(N \le 300\),于是采取 floyd 算法解决。 具体地,我们分情况分类讨论。令我们当前枚举到的最短路径起点为 \(i\),终点为 \(j\),中转点为 \(k\),输入的矩阵为 \(dis\)。 若 \(dis_ 阅读全文
posted @ 2024-03-02 17:20
_KidA
阅读(25)
评论(0)
推荐(0)
摘要:
首先,我们可以得出一个结论: 令点 \(i,j\) 之间的最短路径边权和 \(dis_{i,j}\),若存在一个点 \(k\),使得 \(k \neq i\) 且 \(k \neq j\) 且 \(dis_{i,k}+dis_{k,j}=dis_{i,j}\),则连接 \(i,j\) 的边可以被删去 阅读全文
posted @ 2024-03-02 17:19
_KidA
阅读(44)
评论(0)
推荐(0)
摘要:
我们发现,brute-force 的复杂度的优化瓶颈主要在建图上。 于是我们有一个巧妙的转化: 因为所有满足 \(L \le S,T \le R\) 的所有边 \((S,T)\) 的长度均为 \(C\)。 然后题目要求的是 \(1 \sim N\) 的最短路。 那么在边权相等的情况下,走到的点的编号 阅读全文
posted @ 2024-03-02 17:19
_KidA
阅读(55)
评论(0)
推荐(0)
摘要:
假定当前在节点 \(u\),它拥有两棵子树 \(v,w\),此时 \(u\) 是 \(\operatorname{lca}(v,w)\)。 我们一定可以构造出一个排列 \(a\),使得所有满足 \(i \in v\) 的节点 \(i\) 和满足 \(j \in w\) 的节点 \(j\),有 \(a 阅读全文
posted @ 2024-03-02 17:18
_KidA
阅读(21)
评论(0)
推荐(0)
摘要:
Problem T1 为了方便处理,我们令男生为 \(1\),女生为 \(-1\)。 求一遍前缀和 \(sum\),若存在两个下标 \(l,r\) 使得 \(sum_l=sum_r\),则说明区间 \([l+1,r]\) 的和为 \(0\),即男女人数相等。在这样的区间中取长度最大的即可。 需要特殊 阅读全文
posted @ 2024-03-02 17:17
_KidA
阅读(18)
评论(0)
推荐(0)
摘要:
Problem T1 预处理出前 \(10^4\) 个格子需要填什么数,然后输出即可。 具体地,我们记录 \(e\) 为当前层数,\(o\) 为上一层的最后一个的位置,\(last\) 为上一个填的格子的位置。 我们知道,一个格子要么在一层的起点,要么在一层的中间,要么在一层的末尾。 枚举 \(1 阅读全文
posted @ 2024-03-02 17:16
_KidA
阅读(22)
评论(0)
推荐(0)
摘要:
Problem T1 循环 \(a \sim b\) 中的每个数 \(x\),判断 \(\log_2 x\) 是否为整数即可。 T2 字符串暴力匹配。 T3 gugugu... T4 gugugu... 阅读全文
posted @ 2024-03-02 17:16
_KidA
阅读(10)
评论(0)
推荐(0)
摘要:
Problem T1 我们考虑一种贪心策略:对于价格前 \(n-1\) 小的咖啡,我们求出一种最优方案使得按照此方案买完咖啡后钱数 \(\ge 20\) 且最接近 \(20\)。 至于如何求出最优方案,进行一遍 01 背包即可。 #include<bits/stdc++.h> using names 阅读全文
posted @ 2024-03-02 17:15
_KidA
阅读(20)
评论(0)
推荐(0)
摘要:
开个新坑 qwq。 upd:CSP 前一周暂时停更。 upd:暂时不会更了。 P1099 经典套路题。 算法一:枚举。 先 dfs 求出树的直径,再枚举直径上的每条路径,再 dfs 一遍求出最小偏心距即可。 时间复杂度 \(O(n^3)\),足以通过本题(由此可见本题有多水)。 算法二:双指针。 通 阅读全文
posted @ 2024-03-02 17:14
_KidA
阅读(55)
评论(0)
推荐(0)
摘要:
Problem T1 二分板子。 对于 \(c_i\) 降序排序,然后二分 \(h\) 指数,在 check 中贪心地使用综述增加引用次数即可。 T2 通过观察可以发现,在一篇论文的贡献列表中,若某一位置出现了比它前面的名字的字典序更小的情况,则说明从这个位置开始,后面的人的资历一定 \(\ge\) 阅读全文
posted @ 2024-03-02 17:13
_KidA
阅读(27)
评论(0)
推荐(0)
摘要:
Problem T1 略。 T2 最理想的情况当然是奇偶交替,每个数单独成为一组。 考虑不理想的情况: 偶数个数 \(>\) 奇数个数,此时需要可以先奇偶交替,再将最后剩下的偶数单独分为一组,答案为奇数个数 \(\times \ 2 +1\)。 奇数个数 \(>\) 偶数个数,此时再分出两种情况: 阅读全文
posted @ 2024-03-02 17:13
_KidA
阅读(13)
评论(0)
推荐(0)
摘要:
恶♂趣♂味♂大♂模♂拟♂。 首先是构造语句部分: 开始肯定是尽可能地多用上不及物语句和及物语句; 接着,因为及物语句的单词数量一定比不及物语句多,所以贪心地尽可能多地将不及物语句改为及物语句; 然后,为了增加语句长度,再次贪心地在及物语句中尽可能多地添加名词和逗号即可。 接下来是输出部分: 对于一个 阅读全文
posted @ 2024-03-02 17:12
_KidA
阅读(46)
评论(0)
推荐(0)
摘要:
Problem T1 略。 T2 略。 T3 考虑对于每一头向北的牛,计算它能够挡住 / 被挡住几头向东的牛。 一头向北的牛 \(i\) 能够被向东的牛 \(j\) 挡住的条件是: \(x_i<x_j\) 且 \(y_i<y_j\)(\(x_i,y_i\) 分别表示牛 \(i\) 的 \(x\) 坐 阅读全文
posted @ 2024-03-02 17:10
_KidA
阅读(25)
评论(0)
推荐(0)
摘要:
Problem 省流:三道题写了 tj T1 见 tj。 T2 见 tj。 T3 见 tj。 T4 二分求出左右端点即可。 #include<bits/stdc++.h> using namespace std; int n,q; int p[200031]; int main(){ //freop 阅读全文
posted @ 2024-03-02 17:10
_KidA
阅读(13)
评论(0)
推荐(0)
摘要:
Problem T1 感觉是最难的。 考虑贪心。 首先对牛的按左端点进行排序,然后对于每只鸡去考虑匹配哪头牛。 具体地,开一个小根堆,然后对于每只鸡 \(t_i\),将 \(a_i \le t_i\) 的牛放入堆中,此时堆中存放的是候选的牛。 然后对于堆中的牛,将 \(b_i<t_i\) 的牛弹出。 阅读全文
posted @ 2024-03-02 17:09
_KidA
阅读(23)
评论(0)
推荐(0)
摘要:
这题的朴素 dp 是显然的。 令 \(dp_i\) 表示跳到第 \(i\) 个石头的最小花费,有转移方程: \[dp_i=\min_{j=1}^{i-1}\{dp_j+(h_i-h_j)^2+C\} \]直接转移是 \(O(n^2)\) 的,考虑优化。 首先对于 \(\min\) 以内的式子化简,得 阅读全文
posted @ 2024-03-02 17:07
_KidA
阅读(37)
评论(0)
推荐(0)
摘要:
upd on 2023/12/22:修改了代码,现已通过所有 hack 数据。 首先定义状态: 令 \(dp_{i,j}\) 表示前 \(i\) 个数字要变成 \(j\) 所需要的最少加号个数。 同时,我们还需要一个辅助数组:令 \(num_{i,j}\) 表示 \(i \sim j\) 的数字组成 阅读全文
posted @ 2024-03-02 17:06
_KidA
阅读(156)
评论(0)
推荐(1)
摘要:
Problem T1 略。 T2 略。 T3 结论题。 令所有牛的最终饥饿值为 \(x\),则分别对于每一头牛进行考虑: 对于第一头牛,它需要的最少玉米袋数为 \(h_1-x\); 对于第二头牛,它单独需要的最少玉米袋数为 \(h_2-x\),而第一头牛已经用了 \(h_1-x\) 袋玉米,因此它需 阅读全文
posted @ 2024-03-02 17:05
_KidA
阅读(17)
评论(0)
推荐(0)
摘要:
令输入的字符串为 \(s\),\(n\) 为字符串 \(s\) 的长度。 引理: 对于栈顶的字符 \(s_i\),若它的字典序 \(\le\) 栈外的 \(s_{i+1 \sim n}\) 中字典序最小的字符(记为 \(p_{i+1}\)),则它应该出栈并输出。 根据上述引理,我们先预处理出所有的 阅读全文
posted @ 2024-03-02 17:04
_KidA
阅读(25)
评论(0)
推荐(0)
摘要:
由于只需要考虑相邻的位置,所以每一段连续的 F 是互不影响的,可以分别进行考虑。而连续的一段 F 又可以分成两类:靠边的和被夹在中间的。 靠边的 F 段较为简单,假定有 \(c\) 个 F ,不难发现只要让 EB 交错出现就可以达到最少次数 ,而让所有的 F 都变成最近的非 F 就可以达到最多次数 阅读全文
posted @ 2024-03-02 17:04
_KidA
阅读(43)
评论(0)
推荐(0)
摘要:
我们先枚举所有子矩阵,验证其在不考虑重叠的情况下是否为 PCL 矩阵(dfs 求一遍联通块即可)。 然后将所有满足条件的矩阵存下来,最后朴素判断每个矩阵是否被其他矩阵包括,若没有矩阵包括它,则其对于答案的贡献为 \(1\),累加所有贡献即为最终结果。 时间复杂度是 \(O(n^6)\) 的。 思路很 阅读全文
posted @ 2024-03-02 17:03
_KidA
阅读(46)
评论(0)
推荐(0)
摘要:
PJ T1 首先容易发现每次都会取走 \(\dfrac{n-1}{3}+1\) 个苹果,因此 \(\lceil \dfrac{n}{\dfrac{n-1}{3}+1} \rceil\) 即为总天数。 然后我们可以注意到当第一次出现 \(n-1 \bmod 3=0\) 时第 \(n\) 个苹果会被取到 阅读全文
posted @ 2024-03-02 17:03
_KidA
阅读(38)
评论(0)
推荐(0)
摘要:
题单。 A 从 \(i-1\) 与 \(i-2\) 转移即可。 #include<bits/stdc++.h> using namespace std; int n; int h[100031]; int dp[100031]; int main(){ cin>>n; for(int i=1;i<= 阅读全文
posted @ 2024-03-02 17:02
_KidA
阅读(30)
评论(0)
推荐(0)
摘要:
Living-Dream 系列笔记强势回归(雾) T1 并查集妙妙题。 很容易想到一种朴素的贪心策略: 对于所以物品按照价格从大到小排序, 然后每一个物品,找到最晚的没有卖物品的那一天卖掉此物品。 这样贪心的时间复杂度为 \(O(\max d_i \times n)\),可以通过。 考虑如何优化此贪 阅读全文
posted @ 2024-03-02 17:01
_KidA
阅读(28)
评论(0)
推荐(0)
摘要:
看到这题很容易想到对于每个起点进行二分 + bfs check,但这样写显然 T 飞。 然后由此我们想到用并查集维护连通块做, 具体地,我们先建出图,令每个格子向其右、下格子连边,边权为高度绝对差, 然后将边权从小到大排序, 考虑每一条边,若其端点未被合并,则将它们合并为同一集合, 顺便维护连通块的 阅读全文
posted @ 2024-03-02 17:01
_KidA
阅读(22)
评论(0)
推荐(0)
摘要:
T1 有一个比较秒的 trick:虚拟点。 对于本题,我们设一虚拟点 \(n+1\) 表示水源,于是打井的操作即为与点 \(n+1\) 连边,将点权转为边权。 然后跑 kruskal 即可。 #include<bits/stdc++.h> #define int long long using na 阅读全文
posted @ 2024-03-02 17:00
_KidA
阅读(30)
评论(0)
推荐(0)
摘要:
拓扑排序(\(\texttt{toplogical sort}\)): 在有向无环图(\(\texttt{DAG}\))中,将 \(n\) 个节点整理成一组排列,使得对于每一条边 \(u \to v\),\(u\) 在排列中的位置总是在 \(v\) 之前,我们称这样的排列为原图的拓扑序,找出一张图的 阅读全文
posted @ 2024-03-02 16:59
_KidA
阅读(14)
评论(0)
推荐(0)
摘要:
T1 经典的 toposort + dp, 可以说所有的按 topo 序的 dp 都是按照此题的套路。 令 \(dp_i\) 表示以 \(i\) 结尾的工作需要的最小时间。 题目明摆着就是要你按 topo 序转移, 于是在 toposort 板子中枚举邻接点的部分进行转移即可。 转移方程: \[dp 阅读全文
posted @ 2024-03-02 16:59
_KidA
阅读(22)
评论(0)
推荐(0)
摘要:
首先我们来考虑题目的弱化版。 若地图中没有障碍, 则从 \((1,1)\) 走到 \((H,W)\) 需要 \(H+W-2\) 步, 其中往右的步数为 \(H-1\), 于是答案即为: \[C_{H-1}^{H+W-2} \]当存在 \(1\) 个障碍 \((r,c)\) 时, 考虑用总方案数减去会 阅读全文
posted @ 2024-03-02 16:58
_KidA
阅读(21)
评论(0)
推荐(0)
摘要:
T1 令 \(dp_i\) 表示以 \(i\) 结尾的最大食物链条数。 有转移方程: \[dp_i=\max(dp_i,dp_i+dp_j)(j \in \operatorname{son} i) \]按拓扑序转移即可。 #include<bits/stdc++.h> #define int lon 阅读全文
posted @ 2024-03-02 16:58
_KidA
阅读(20)
评论(0)
推荐(0)
摘要:
T1 floyd 模板。 #include<bits/stdc++.h> using namespace std; int n,m; int dp[131][131]; void floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int 阅读全文
posted @ 2024-03-02 16:58
_KidA
阅读(10)
评论(0)
推荐(0)
摘要:
检验 \[\sqrt{\sum_{i=1}^{n} a_i} \]是否为整数即可。 实现: int n; double s=0.0; cin>>n; for(int i=1;i<=n;i++) cin>>a[i],s+=a[i]; cout<<(sqrt(s)==(int)(sqrt(s))?"YE 阅读全文
posted @ 2024-03-02 16:57
_KidA
阅读(21)
评论(0)
推荐(0)
摘要:
容易发现音节的划分不仅要求子串形如 \(\texttt{CV}\) 或 \(\texttt{CVC}\),并且接下来的两个字符也必须是 \(\texttt{CV}\),不然会导致无法划分下去。 于是我们遍历字符串,找出所有满足上述条件的子串,记录需要输出 \(\texttt{.}\) 的位置即可。 阅读全文
posted @ 2024-03-02 16:57
_KidA
阅读(41)
评论(0)
推荐(0)
摘要:
我们考虑维护 \(sum_i\) 表示前 \(i\) 个数中偶数下标的数之和与奇数下标的数之和之差,其中 \(sum_0=0\)。 若在某一时刻,有 \(sum_i=sum_j(j<i)\),说明 \(j \sim i\) 中偶数下标的数之和与奇数下标的数之和之差为 \(0\)。这个使用 map 判 阅读全文
posted @ 2024-03-02 16:56
_KidA
阅读(36)
评论(0)
推荐(0)
摘要:
容易发现每个人在行进过程中不会追上其他任何一个人, 因此一对人 \(i,j\) 会问候当且仅当 \(b_i>b_j\),这时 \(i\) 会在 \(b_j\) 处问候 \(j\)。 于是我们考虑对所有人 \(i\) 按 \(a_i\) 排序, 根据上述推论,便可得 \(b_i\) 的逆序对数总和即为 阅读全文
posted @ 2024-03-02 16:56
_KidA
阅读(77)
评论(0)
推荐(0)
摘要:
一眼最短路。 容易发现每到一个点 \(u\) 就会有两种决策:换速度系数与不换速度系数。 于是定义状态 \(dis_{u,p}\) 表示在点 \(u\) 速度系数为 \(p\) 时所需的最短时间。 跑一遍 dijkstra, 对于每条边 \(u \to v\),分别对 \(dis_{v,p}\) 与 阅读全文
posted @ 2024-03-02 16:56
_KidA
阅读(24)
评论(0)
推荐(0)
摘要:
对于第一问,用并查集将所有边权为 \(0\) 的边的端点合并, 然后对于每个 type 看里面是否所有的点都在一个集合中即可。 时间复杂度 \(O(n \log n)\)(默认使用路径压缩并查集)。 对于第二问,将 type 看作点, 对于每两个 type 取它们中两个点的最小边权连边, 然后跑 f 阅读全文
posted @ 2024-03-02 16:55
_KidA
阅读(17)
评论(0)
推荐(0)
摘要:
T1 一头牛能确定关系,当且仅当它能到达 / 被到达除自己外的所有牛。 于是我们建出有向图,跑 floyd 传递闭包, 然后对于每个点统计他能到达的点数是否为 \(n-1\) 即可。 #include<bits/stdc++.h> using namespace std; int n,m,ans; 阅读全文
posted @ 2024-03-02 16:49
_KidA
阅读(12)
评论(0)
推荐(0)
摘要:
T1 bf 的做法是 \(n\) 次 floyd,实测可以卡过。 然后我们发现当点 \(u\) 为重要点时,当且仅当存在 \((a,b)\) 使得 \(u\) 为它们的唯一中转点。 于是我们令 \(vis_{i,j}\) 表示 \((i,j)\) 的唯一中转点, 接着在 floyd 的松弛操作中若能 阅读全文
posted @ 2024-03-02 16:49
_KidA
阅读(14)
评论(0)
推荐(0)
摘要:
继 算法竞赛进阶指南-学习笔记 之后的新内容。 将会比前面的简略许多,因为仅供个人使用。 0x41 并查集 P1955: 相等关系合并端点,不等关系若端点在同一集合则矛盾。注意离散化。实现。 UVA1316: solution。 P1196: solution。 P5937: 首先容易发现,若令 \ 阅读全文
posted @ 2024-03-02 16:48
_KidA
阅读(31)
评论(0)
推荐(0)
摘要:
稍微讲一下 dijkstra qwq。 dijkstra、bellman-ford(or spfa)、bfs 的区别: dijkstra 以点为研究对象; bellman-ford / spfa 则以边为研究对象; 而 bfs 可以看作边权为 \(1\)(or 全都相同)的 dijkstra,因此它 阅读全文
posted @ 2024-03-02 16:48
_KidA
阅读(19)
评论(0)
推荐(0)
摘要:
T1 枚举流量对于花费跑 dijkstra 并取比值的 \(\max\) 即可。 关于为什么枚举流量不一定当前最优的问题,因为最优解的流量总在枚举范围内,所以无需考虑当前是否最优。 #include<bits/stdc++.h> using namespace std; int n,m,ans; i 阅读全文
posted @ 2024-03-02 16:46
_KidA
阅读(18)
评论(0)
推荐(0)
摘要:
比赛链接 T1 \(100 \to 10\)。 错因: 01 背包转移方程写错,没有取 \(\max\)。 并查集合并错写成将 u,v 而非 fnd(u),fnd(v) 合并。 #include<bits/stdc++.h> using namespace std; int n,m,w; int c 阅读全文
posted @ 2024-03-02 16:46
_KidA
阅读(12)
评论(0)
推荐(0)
摘要:
bellman-ford: 因为最短路最多 \(n\) 点 \(n-1\) 边,则进行 \(n-1\) 轮操作,每轮枚举 \(m\) 边进行松弛即可。 时间复杂度 \(O(nm)\)。 spfa: 正确的称呼是队列优化的 bellman-ford。 我们知道,对于一个点,只有它被松弛了,它的邻接点才 阅读全文
posted @ 2024-03-02 16:46
_KidA
阅读(31)
评论(0)
推荐(0)
摘要:
负环,即负权环,指在图 \(G\) 中边权和为负数的一回路。 负环的判定一般有两种方式。 以下均以 \(n\) 点 \(m\) 边的图 \(G\) 为例。 法一:以边为研究对象。 注意到最短路边数一定不超过 \(n-1\) 边,因此维护 \(cnt_x\) 表示起点到 \(x\) 的边数,若某一时刻 阅读全文
posted @ 2024-03-02 16:45
_KidA
阅读(20)
评论(0)
推荐(0)
摘要:
强连通分量(Strongly Connected Components,SCC)。 强连通:有向图中,\(x,y\) 能相互到达。 弱连通:有向图中,\(x\) 能到 \(y\),\(y\) 不能到 \(x\)(或反之)。 强连通分量:有向图 \(G\) 中一极大子图 \(G1\),使得 \(G1\ 阅读全文
posted @ 2024-03-02 16:44
_KidA
阅读(25)
评论(0)
推荐(0)
摘要:
T1 第一问是简单的,答案即为缩点后入度为 \(0\) 的点。 对于第二问,考虑到当整个图就是一个 SCC 时能满足条件。 当整个图为一个 SCC 时,它仅可能是一个环。 而我们知道,让一个 DAG 形成环肯定要 将出度为 \(0\) 的点全部与入度为 \(0\) 的点相连。 于是第二问的答案即为 阅读全文
posted @ 2024-03-02 16:44
_KidA
阅读(36)
评论(0)
推荐(0)
摘要:
补充一个对本题贪心思路更(?)清楚的解释。 本题贪心思路: 在 \(a_i,b_i\) 分别升序的情况下,对于每个 \(a_i\),与它差值最大的 \(b_i\) 只可能出现在 \(b_{n-i+1}\) 与 \(b_{m-i+1}\) 这两者中。 证明: 首先,假设我们有一个长度为 \(n\) 的 阅读全文
posted @ 2024-03-02 16:43
_KidA
阅读(30)
评论(0)
推荐(0)
摘要:
Link。 T1 依题计算即可,\(O(1)\)。 #include<bits/stdc++.h> #define int long long using namespace std; signed main(){ ios::sync_with_stdio(0); double n; cin>>n, 阅读全文
posted @ 2024-03-02 16:43
_KidA
阅读(19)
评论(0)
推荐(0)
摘要:
Link,第二场没打。 T1 \(100\),没挂分。 依题计算即可,\(O(1)\)。 #include<bits/stdc++.h> using namespace std; double n,a,b; int main(){ //freopen("as01.in","r",stdin); // 阅读全文
posted @ 2024-03-02 16:42
_KidA
阅读(9)
评论(0)
推荐(0)
摘要:
Link,第四场没打。 T1 \(100\),没挂分。 \(\operatorname{lcm}(x,y)=\dfrac{x}{\gcd(x,y)} \times y\) #include<bits/stdc++.h> #define int long long using namespace st 阅读全文
posted @ 2024-03-02 16:42
_KidA
阅读(13)
评论(0)
推荐(0)
摘要:
Link。 T1 \(100\),没挂分。 依题计算即可。 #include<bits/stdc++.h> #define int long long using namespace std; signed main(){ //freopen("as01.in","r",stdin); //freo 阅读全文
posted @ 2024-03-02 16:41
_KidA
阅读(33)
评论(0)
推荐(0)
摘要:
非常好区间 dp。 我们发现直接依题做是困难的,因此考虑反着做。 也即,假定起初那 \(Q\) 个牢房均为空,现在要将给定的 \(Q\) 的犯人插入其中,求最小代价。 然后我们发现这题和 P1775 很像,相当于每插入一个人,两段不相邻的牢房就被合并到了一起。 接着我们就考虑这玩意怎么做区间 dp。 阅读全文
posted @ 2024-03-02 16:36
_KidA
阅读(20)
评论(0)
推荐(0)

浙公网安备 33010602011771号