摘要:
Problem 有以下操作 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数) Solution 裸的 阅读全文
2017年11月4日
摘要:
T1 Problem "洛谷" Solution 枚举那个点的位置,再O(n)扫一遍求出覆盖的公共场合的数量。。。 所以时间复杂度为O(128 128 n) Code T2 Problem "洛谷" Solution 注意读入时连是反向边比较好处理。一下都是按反向边处理的。 先一遍dfs把不能够连到 阅读全文
摘要:
T1 Problem "洛谷" Solution 一道非常裸的模拟题。直接枚举每次猜拳就可以了。 Code 阅读全文
摘要:
T1 Problem "洛谷" Solution 这是线性扫描题吧。 就从1 ~ n 循环,若比起面高,则 ans += h[i] h[i 1]。 Code T2 Problem "洛谷" Solution 其实就是求一个数列里拐点数+1,然后O(n)扫一遍就好了。 Code 阅读全文
摘要:
T1 Problem "洛谷" Solution 感觉我写的也不是正解。。。 我是先找出每个循环节的长度l。。。然后用快速幂求出10 ^ k % l的值。。 Code T2 Problem "洛谷" Solution 首先可以证明当Ai在A中大小排名和Bi在B中大小排名相等时,其差的平方时最小的。。 阅读全文
摘要:
Problem 给定一棵有边权的树。树上每个点是黑或白的。黑白点能两两交换。 求符合任意一个白点到最近黑点的距离小于等于x时,黑白点交换次数最少为多少。 Solution 明显是一题树形DP。我们先跑一边Floyd。 F[i][j][k]表示以i为根的子树中,连向结点j,子树中已经确定有k个是黑点所 阅读全文
摘要:
Problem 给定n个字符串Si,任意选出k个字符串Ai,使得其中任意两个字符串lcp之和最大。 Solution 建一棵trie树,枚举每一个节点对答案的贡献,树形dp,时间复杂度像是O(N^3) 由于每个点对只在自己LCA的时候枚举到贡献,所以是O(N^2) Notice 这道题分析时间复杂度 阅读全文
摘要:
Problem 给你一棵树,可以在每个点上选择造塔或不造,每座塔可以覆盖这个节点和相邻节点,问覆盖整棵树的最小塔数。 Solution 看到这道题的第一眼,我就觉得是一题贪心题,但看见出题的时候分类在树形DP,于是就没仔细想贪心。 树形DP:f[u][0]表示u被其儿子覆盖,f[u][1]表示u上有 阅读全文
2017年11月1日
摘要:
Problem 给你n个任务,n 1个关系,ab代表a在b前或者a在b后 问你有几种拓扑序 Solution f[i][j]表示第i个节点前有j个节点的方案数 设当前节点为x,儿子节点为s,若x依赖于s,那么 若s依赖于x,那么 Notice 要预处理出C数组 Code 阅读全文
摘要:
Problem 刚开始每条边都是坏的,现在要选取一个点使得其他点到这个点的路径上最多只有一条坏路,问至少要修好多少条边 Solution 如果以1为根,那么是个简单的树形DP 设根从u转移到v,那么u的父亲会变成v(f[u]需要删除v的贡献), u的原来的父亲会变成u的孩子(f[u]需要加上原父亲的 阅读全文
2017年10月30日
摘要:
Problem 每个点都可以选择降落士兵,然后当一个点的子节点被攻占的数量超过读入中的限制后,这个城市也被占领。 每个点降落士兵都有一定的代价,问把这一个图全部攻占的最小代价。 Solution 这显然和儿子有关还与父亲有关 我们假设f[x]表示x在父亲之前被攻占,g[x]表示x再父亲之后被攻占 显 阅读全文