随笔分类 - 贪心
摘要:优先按照它说明的方法处理数组 然后为了让数列中尽可能多的出现小的数字 所以1是必须要出现的,这样才能使整个数列的排序后字典序最小。 我们思考,如果2也能在这个数列中那就最好不过了 但是2有可能不在这个数列里,就是2在走了1就不可能走的地方的话,就不能走2了。 所以从小到大枚举数字,如果当前数字能走,
阅读全文
摘要:自底向上贪心。 每次给儿子排序,贪心地从小到大删,直到不能删。
阅读全文
摘要:将k对点两两相连,求最小长度 易证得,最优方案中,相连的办公楼一定是取相邻的比取不相邻的要更优 然后就可以用贪心来做这道题了。。 将初始所有的线段放进堆里 每次取最短的线段进行连接,且ans+=a[i] 取完后删除当前线段,与相邻的两条线段,同时再插入新边,权值为a[pre]+a[next]-a[n
阅读全文
摘要:可以算出合并多少次。 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace s
阅读全文
摘要:给一块n*m的巧克力,Alice只能垂直切,切成A*m和B*m,并且A+B=n,Bob只能横切,只能切成A*n和B*n,并且A+B=m。 对于n*n的这种巧克力,谁先切了第一刀,就直接让对方有切两刀的机会,所以Alice不可能去切这种巧克力,可以直接无视这种。 后一人会尽量选前一人切后小的一块切。
阅读全文
摘要:环形均分纸牌问题。用A[i]表示糖果数,sum表示目标的糖果数量。用X[i]表示从i + 1移动到i的糖果的个数(可+可-)。由此可以得到式子A[i] + X[i] - X[i - 1] = sum。我们可以得到这样的n - 1个方程(第n个可以由前n - 1个推导)。但是这样不足以求解。我们进行以
阅读全文
摘要:先看成一条链 for一遍找位置 在for一遍算答案
阅读全文
摘要:按照t2从小到大排列之后贪心。 若当前任务可以插入,则插入。 若当前任务不可以插入,分两种情况: ①当前任务的耗时大于等于之前插入的任务的最大耗时:跳过当前任务 ②当前任务的耗时小于之前插入的任务的耗时:将最前插入的耗时最大的那个任务删除,插入当前任务 用堆维护 #include<algorithm
阅读全文
摘要:贪心 将双方的选手均按从强到弱排序,然后第一次扫描尽可能用当前剩下的选手中能赢对手当前最强选手中最弱的一个去赢得胜利,若无法做到,则暂时不考虑给对方最强的选手匹配对手。第二遍扫描使用同样策略去获取尽量多的平局。最后剩下的选手任意匹配就能获得最多的分数。 #include<algorithm> #in
阅读全文