摘要:
https://www.acwing.com/problem/content/275/ 可以用归纳法证明一定存在最优方案, \(B\) 中的数全在 \(A\) 中出现过 所以设 \(dp[i][j]\),表示已经构造好前 \(i\) 个数,第 \(i\) 个数为 \(j\) 的方案数, \(dp[i 阅读全文
摘要:
题目链接:https://www.acwing.com/problem/content/274/ 经典题,首先我们知道最长上升子序列和最长公共子序列的求法, 那么最长上升公共子序列就是把两者的状态结合一下:\(dp[i][j]\) 表示 \(A\) 的前 \(i\) 个字符和 \(B\) 的前 \( 阅读全文
摘要:
题目链接:https://ac.nowcoder.com/acm/contest/9680/I 记录一下上次移动的方向,如果这次移动的方向和上次相同,那么边权为 $0$, 否则边权为 $1$ 边权仅为 $0/1$ 的图求最短路径可以使用双端队列 \(bfs\),如果边权为 $0$ 就加入队首,否则加 阅读全文
摘要:
题目链接:https://atcoder.jp/contests/arc109/tasks/arc109_d 这个做法太妙了 注意到一个四方格内的 'L' 总共有四种形态,所以可以将四方格的左下角顶点拆成四个点,分别代表四种状态 方格间的转移情况如图:(不能沿对角线穿越两个不同的大格子) 如果在对角 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/1408/D 要让所有的罪犯逃离,必须满足对于每一对罪犯和探照灯 \((i,j)\) : 要么 \(a[i] > c[j]\), 要么 \(b[i] > d[j]\) 所以对于 \((i,j)\), 处理出 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/1427/C 设 \(dp[i]\) 表示拍到第 \(i\) 个艺人的情况下,能拍到的最多次数 显然的 \(O(n^2)\) 转移是 : \(dp[i] = max_{j = 0}^{i - 1}(dp[i 阅读全文
摘要:
题目链接:https://codeforces.com/contest/1437/problem/F 一个很重要的性质:happy 的渔夫手中的鱼的重量一定是递增的,且每个 happy 渔夫的鱼都比前一个 happy 的渔夫重至少两倍 于是我们就可以枚举 happy 的渔夫,剩下的渔夫肯定都是 sa 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/1446/C 还是想不到。。 将所有的数都插入到 \(trie\) 中,根据异或的性质,同一位相同的数,异或起来肯定更小, 所以在 \(trie\) 中,子树内的数字在建好的图中一定在同一个连通块里, 我们 阅读全文
摘要:
##F. Strange Memory ###题目链接:https://codeforces.com/gym/102832/problem/F \(dsu\ on\ tree\) 以当前节点 \(u\) 为 \(lca\) 的点对就是 \(u\) 的不同子树内的点对, 同时我们可以发现: \(a[i 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/600/E 一直没有点这个技能点,今天跟队友打训练赛,碰到一道 \(dsu\ on\ tree\) 的题写不出来,就回来把这个题写了 \(dsu\ on\ tree\) 运用了轻重链剖分的思想,先处理轻儿子 阅读全文