摘要:
比赛链接:Here 1001 - Course 1002 - Sample Game 1003 - LCS 构造, 首先排除不可能的情况 两个 LCS 的值减去最小的 LCS 值如果比 \(n\) 还大,那么肯定构造不出来啊(不够长 剩下就是对于公共的 min(a,b,c) 赋 a ,对应的三种情况 阅读全文
摘要:
算法讲解:Here AcWing 282. 石子合并 (模板) 题目链接:Here const int N = 310; int a[N], s[N]; int dp[N][N]; void solve() { int n; cin >> n; for (int i = 1; i <= n; ++i 阅读全文
摘要:
基本的知识点引用自 OI wiki,感谢社区的帮助 什么是区间 DP? 区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系。令状态 \(f(i,j)\) 表示将下标位置 \(i\) 到 \(j\) 的所有元素合并能获得的价值的 阅读全文
摘要:
来源:Educational Codeforces Round 111 (Rated for Div. 2) 不难但很好的思维题 设 \(d(p,q)\) 为 \(p,q\) 两点之间的曼哈顿距离 给定三个点,如果 \(d(p,r) = d(p,q) + d(q,r)\) 则三个点是 坏三元组。 在 阅读全文
摘要:
模运算是一个高深的地方,初来乍到,还是写一下为敬QAQ。。。 记号 我们把 \(a\) 除以 \(m\) 所得的余数记作 \(a \bmod m\)。 如果 \(a \bmod m = b \bmod m\),即 \(a\), \(b\) 除以 \(m\) 所得的余数相等,那么我们记作: \[ a\ 阅读全文
摘要:
来源:2020 年百度之星·程序设计大赛 - 初赛一 一个圈,从内到外一共被分成了 \(n\) 个环,中间是空的。 我们把从外到内第 \(i\) 层环平分成 \(a[i]\) 份,其中 \(a[i]\) 是偶数,我们把这 \(a[i]\) 份黑白染色,第奇数个染成黑色,第偶数个染成白色。 现在我们旋 阅读全文
摘要:
来源:2020 年百度之星·程序设计大赛 - 初赛一 一道贪心 + 细节模拟题 题意很简单,这里不详细写了 观察题目,\(n\) 只有 500 ,可以 \(n \times n\) 枚举每个位置作为起点,对于每个位置而言,可以 \(6 \times 6\) 去枚举周围曼哈顿距离为 \(3\) 的点, 阅读全文
摘要:
来源:2020 年百度之星·程序设计大赛 - 初赛一 错误想法带来错的代码, 为什么一个简单DP题能被我想成复杂的贪心啊?? 初始有 \(a,b\) 两个正整数,每次可以从中选一个大于 1 的数减 1,最后两个都会减到 1,我们想知道在过程中两个数互质的次数最多是多少。 直接预处理找出 \(1000 阅读全文
摘要:
一、取走游戏 首先,我们介绍一下组合游戏。组合游戏是一种两个人参与的游戏,参与者拥有完整的(有关游戏的)信息,没有任何意外产生的操作(即保证无意外性),并且游戏拥有一个输赢的结果。这样的游戏是由一系列的位置,包括一个起始位置,和哪个参与者进行下一步所组成、决定的。游戏在参与者的选择中从一步移向下 阅读全文
摘要:
比赛链接:Here 1391A. Suborrays 简单构造题, 把 \(n\) 放最前面,接着补 \(1\) ~ \(n - 1\) 即可 1391B. Fix You \((1,1)\) → \((n,m)\) 统计相应个数的 R 和 D 即可 char a[110][110]; int ma 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
单调队列,就是单调的队列,通常用来解决滑动窗口的最值问题,可以应用到 DP 的优化上。一个单调队列中的元素总是单调递增(或递减)的。 例:有一个队列,每次从队尾加入一个元素,或从队首删除一个元素,并在任何时刻求整个队列的最大值。 一个很直接的想法是使用优先队列 priority_queue 即堆,堆 阅读全文
摘要:
模板:单调队列DP求在区间$[l,r]$ 中长度至少为 \(m\) 的最大平均值 题目链接:Here 题意 给定一个长度为 \(n\) 的序列 \(a_1\) ~ \(a_n\) ,从中选取一段长度在 \(s\) 到 \(t\) 之间的连续一段使其平均值最大。\((n<=100000)\) 分析 二 阅读全文
摘要:
比赛链接:Here A - LR Constraints 赛时做这个好迷啊,英文题面解释不清楚,还是看了日语原文才搞懂 \(n\) 个卡牌上有两个 字符 + 数字 组合,L 的右边所有元素 + 1,R 的左边元素 + 1 最后求出现过数字的乘积,同时对 \(998244353\) 取余 注意点:开 阅读全文