12 2024 档案
摘要:A. [NOIP2015 普及组] 推销员 首先考虑一个明显假的贪心,选择前 \(X\) 大的疲劳值计算答案。 它假就假在,可以选择一个(或几个)疲劳值更小,但更远的位置,使总贡献更大。 略经思考后发现,如果要更换,那么一定要满足距离比当前的所有都远,而且更换掉的一定是当前最小的疲劳值。 同时,如果
阅读全文
摘要:A. [CCO2015] 路短最 设 \(dp[i][S]\) 表示走到 \(i\) 点,经过的点集为 \(S\) 的最长路,用类似于 spfa 的方式转移即可。 复杂度是一个 bfs,具体不太会证。 Code #include<bits/stdc++.h> #define ll long long
阅读全文
摘要:高维前缀和(SOSDP)解决这样的问题: 给定 \(f_i\),其中 \(i\in[0,2^n-1]\),求解 \(\sum\limits_{j\subseteq i}f_j\)。 考虑一维前缀和: for(int i=1;i<=n;i++){ sum[i]=sum[i-1]+a[i]; } 二维前
阅读全文
摘要:A. [USACO13NOV] No Change G 设 \(dp[S]\) 表示取的硬币状态为 \(S\) 时最多买多少东西。给 \(n\) 个物品做前缀和,转移二分即可。时间复杂度 \(O(2^kk\log n)\)。 Code #include<bits/stdc++.h> #define
阅读全文
摘要:A. Promises I Can't Keep 题目意为求以每个点为根时的期望得分的最大值,换根DP即可。 式子不太难推,半个小时就出来了。太长了不往这写了。 Code #include<bits/stdc++.h> #define ll long long #define il inline #
阅读全文
摘要:A. 「MXOI Round 1」城市 首先推个小式子,把让求的答案中和 \(n+1\) 有关的分出来: \[\begin{align*} &\sum_{i=1}^{n+1}\sum_{j=1}^{n+1}cost(i,j)\\ =&\sum_{i=1}^{n+1}\sum_{j=1}^{n}cos
阅读全文
摘要:AC自动机是以trie结构为基础,结合KMP算法思想构建的,用于解决多模式串匹配问题。 它的构建方式分为以下几步: \(1.\) 建立trie树 \(2.\) 构建失配(fail)指针 其中 fail 指针指向的是当前节点的状态的后缀所对应的状态。 这里明确一下,trie树中的每个节点表示的是一个状
阅读全文