分治策略 分治策略是一种解决问题的思路: 将问题分为若干更小规模的部分 通过解决每一个小规模问题,并将结果汇总得到原问题的解。 PS:递归问题则体现了分治策略。 优化问题和贪心策略 1.优化问题例子:找零兑换问题 让自动售货机每次找零给顾客最少数量硬币。 贪心策略解决:我们每次都试图解决问题尽量大的 ...
分类:
编程语言 时间:
2020-04-16 19:35:55
阅读次数:
70
LINK: "Xenia and Colorful Gems" 考试的时候没想到一个很好的做法。 赛后也有一个想法。 可以考虑答案的样子 x,y,z 可以发现 一共有 xg[3]; inline ll js(ll a,ll b,ll c){return pf(a b)+pf(a c)+pf(b c) ...
分类:
其他好文 时间:
2020-04-16 19:32:26
阅读次数:
74
这道题大可看成贪心来做。 根据题目所说,物品重量无非两种,要么重量是 1 ,要么重量是 2 ,那么按物品重量把它们分成两类,用一个 $pair$ 来存物品的价值和序号(因为输出要用),按价值对两个物品序列降序排序。 然后枚举用 $i$ 个重量为 1 的物品(理论上 2 也可以),那么就用了 $\fr ...
分类:
其他好文 时间:
2020-04-16 13:18:58
阅读次数:
48
题意: 一开始所有点都是花园 1为首都(即根) 现在n个点里弄k个工厂,而密探都在工厂点上 密探回首都时每经过一个花园时幸福度+1 密探一定走最短路 问最大幸福度之和 思路:BFS求出每个节点的深度,然后再减掉每个节点儿子所做的贡献,思路在代码中(DFS更简单) 代码: #include <iost ...
分类:
其他好文 时间:
2020-04-16 13:06:37
阅读次数:
72
[toc] 涵盖知识点:思维、贪心、区间dp。 比赛链接: "传送门" "A Ichihime and Triangle" 题意: 找出数对$(x,y,z)$满足$a\le x\le b\le y\le c\le z\le d$且能够组成三角形 题解: $(b,c,c)$ Accept Code: ...
分类:
其他好文 时间:
2020-04-16 12:57:49
阅读次数:
102
字典树是一颗无根树,可以是01字典树,也可以是字符串字典树。 J - Coolbits ZOJ - 4135 给出n个区间,每个区间里拿出一个数,使得总体异或值最大,求最大异或值。 一个一个枚举数是不行的,时间肯定不对,于是考虑枚举二进制位数。 从高位到低位枚举的贪心是正确的, 当你枚举一个区间当前 ...
分类:
其他好文 时间:
2020-04-16 00:35:38
阅读次数:
79
一、简单贪心: 这种贪心就是靠直觉,没有什么套路,唯手熟尔,但是也很好证明它是对的。 1、codeforces1334B Middle Class 题意: 给出$n$个数,你可以选出一个子集然后这个这个子集的数的的值改成它们的平均值,求平均值大于等于$k$的最大子集。 题解: 这些数降序排序,然后预 ...
分类:
其他好文 时间:
2020-04-15 13:39:51
阅读次数:
84
证明不会:yxc说要用匈牙利算法,来确定增广路径;算法步骤:1.将牛按minspf从大到小排序2.每次取出满足当前条件,最大的spf。因为是按开始从大到小排序,所以假设x, y防晒,spfs[x] < spfs[y], 那么可能后面的牛能用到x,y,或者只用到x,或者都用不上。因为后面的牛可能可以用 ...
分类:
其他好文 时间:
2020-04-15 00:46:47
阅读次数:
53
OAO dijkstra算法在复杂度方面是十分优秀的,但是其最大弊端就是无法处理带负权的图 (因为是基于已经被更新过的距离源点的边必然已经达到了最短路的这个事实 来采取贪心策略来求得最短路 而有负权路存在时,这个基础不在成立。) 这个时候就要请出Bellman-Ford算法了 (正确性证明:http ...
分类:
编程语言 时间:
2020-04-14 20:30:25
阅读次数:
61
"description" 思路 题目大意是给定字符串s和c,要求交换s中至多两个字符,使得s字典序严格小于c。如果不存在输出“ ”,否则输出交换后的s。 一开始总想着分类讨论。但是情况实在太多,写不过来。 后面看别人代码才知道应该先找到s交换两个字符后最小的字典序,然后再和c对比即可。 详见代码。 ...
分类:
Web程序 时间:
2020-04-14 12:36:19
阅读次数:
81