摘要:
A Candies and Two Sisters 题目链接 没有什么好说的,直接上代码: #include <iostream> #include <cstdio> #include <cstring> using namespace std; int T, n; int main() { sca 阅读全文
摘要:
题目链接 Solution \(n,m≤10^5\) 考虑差分(设公差为 \(d\) ):\(a[l]+=s, a[r+1]-=s+(r-l)*d\),中间 \((l,r]\) 部分区间加 \(d\),使当前位置的值等于其前缀和。可以使用线段树或者树状数组维护。 \(n≤10^7\) 再次使用差分, 阅读全文
摘要:
题目链接 Solution 根据题目规则,很显然,每一行每一列最多只能放两个棋子。设 \(f_{i,j,k}\) 表示处理到第 \(i\) 行,有 \(j\) 列放了一个棋子,\(k\) 列放了两个棋子的方案数。分情况讨论第 \(i\) 行的棋子放置情况: 什么也不放 直接转移即可: \(f_{i, 阅读全文
摘要:
题目链接 Solution 设 \(f_{i,S}\) 表示前 \(i\) 个围栏,围栏 \(i\) 能看到的 $5$ 个围栏状态为 \(S\) 时最多使多少小朋友开心。由于围栏 \(i-1\) 的视野与围栏 \(i\) 的视野只有 $1$ 处不一致,得到转移方程: f[i][j] = max(f[ 阅读全文
摘要:
题目链接 Solution 动态规划题,设 \(f_{i,j}\) 表示前 \(i\) 天,手中有 \(j\) 股的最大钱数。分为 $4$ 种情况讨论: 凭空买入 即在当日开始时手中没有股票,当日买入 \(j\) 股。转移方程: \(f_{i,j}=-j * ap_i\) 不买也不卖 直接转移: \ 阅读全文
摘要:
题目链接 Solution 状压 dp 题:状态 \(S\) 一共有 \(k\) 位,表示当前硬币是否已经用过了。设 \(f_S\) 表示状态为 \(S\) 时最多能购买多少物品。 考虑把 \(S\) 中的一个 $0$ 变成 $1$:需要使用当前硬币,从 \(f_S\) 开始购买尽可能多的物品。为了 阅读全文
摘要:
题目链接 Solution \(m\) 很小,考虑状压。状态 \(S\) 一共有 \(m\) 位,每一位代表当前乐队是否排好(即乐队所有成员都站在一起),并假设所有排好的乐队都站在前面。 \(f[S]\) 表示状态为 \(S\) 时最少移动的偶像数目。不管所有排好的乐队顺序如何,它们的总数是一定的。 阅读全文
摘要:
思路题 阅读全文
摘要:
学了又有什么用,迟早会忘的;
写博客又有什么用,反正不会看的 阅读全文