其他
oranges_c
落寞是岁月的痕迹
展开
-
【POJ3253】Fence Repair(优先队列+贪心)
题目链接 题目大意: 将一块长度为L的木板切割为两块,花费为L,切割后的两块木板的长度和为切割前的长度。给你N个切割后的木板的长度,问最小花费是多少。书上的一道贪心题。用huffman编码的思想贪心,感觉挺有趣的。 我们可以考虑将两块合并成一块木板,花费为合并后的木板的长度。 根据huffman思想,每次选取长度最小的两个合并,以此贪心,最后可以保证花费最少。如何选取原创 2017-02-07 14:42:48 · 412 阅读 · 0 评论 -
hdu_round1-1002 光头强选举(优先队列)
光头强非常渴望权利。他想赢得即将到来的选举。现在有n个候选人,包括光头强,其中光头强是一号候选人。我们现在已经知道每个候选人获得了多少张选票。其中第i个候选人拥有ai张选票。为了赢得选举,光头强的得票数必须严格大于其他候选人。胜利比一切都重要,所以光头强决定通过作弊来赢得选举。他会通过贿赂将给其竞争者投票的选民将选票改投给自己。那么光头强最少要贿赂几个选民才能获得选举的胜利?原创 2017-07-02 22:10:06 · 573 阅读 · 0 评论 -
hdu_round1-1003 yyf和女朋友玩游戏
yyf找到女朋友之后和女朋友玩起了网游。这天他打了三把武器给自己的女朋友,武器有8个属性,每个属性是一个正整数,最多为99,yyf想选一把最厉害的武器送给自己的女朋友,设第一把武器的属性为$a_1−a_8$,第二把武器的属性为$b_1$−$b_8$,若第一把武器比第二把武器厉害,则$a_1=b_1,a_2=b_2....a_{i−1}=b_{i−1},a_i>b_i, 1≤i≤=8$, 请输出最厉害的武器的编号,第一原创 2017-07-02 22:28:27 · 508 阅读 · 0 评论 -
2017美团编程大赛初赛A-C.倒水
分为几种种情况讨论: 1.T比所有的水杯的温度都高,就把所有的水倒完。 先按最高温度倒,然后剩余的按水杯的体积比例倒 2.T比所有的水杯的温度都低,就按最低的水杯温度倒 3.在中间则是Impossible 4.最高温度等于最低温度并且T等于最高温度的话,就是T水不够的都是Impossible(数据有点弱。自己ac的代码自己找出数据卡掉了#include <stdio原创 2017-06-19 20:51:09 · 420 阅读 · 0 评论 -
【zcmu1920】nazime's 友人帐(贪心,树形dp)
题目链接 原题题目没说根是多少。 但是连通块必须包含1,我们不妨以1为根。1.假设有个点i,那么如果以点i为根的子树上有点包含在所选取的块,那么也必定会对i这个点进行同样的操作。因为到1的路径中必定包含i。 2.所以点i的操作次数就是点i的儿子节点中的最大操作次数 (因为如果有两个或以上的结点需要相同的操作,可以合并操作) (对于叶子结点,如果权值为正down的值就是权值,否则up的值原创 2017-05-28 22:18:51 · 335 阅读 · 0 评论 -
【HDU1005】Number Sequence(矩阵快速幂)
题目链接 题目大意: f[1] = 1,f[2] = 1,f[n] = (a*f[n-1]+b*f[n-2])%7(n > 2) 给你a,b。求f[n]。网上好像都是找规律的。 我想用下矩阵求递推式,类似矩阵快速幂求斐波那契。 搞清楚原理后,只要稍微改动下就可以了。我们可以构造矩阵 (f[3]f[2])=(a b1 0)(f[2]f[1])\left(^{f[3原创 2017-02-15 22:13:03 · 1536 阅读 · 5 评论 -
【HDU6031】Innumerable Ancestors(二分+LCA)
题目链接题目大意: 给你n个点树,m个查询 每次查询给出两个点集A,B。 求x∈A,y∈Bx\in A,y\in B 使得lca(x,y)的深度最大lca(x,y)的深度最大倍增lca相关知识 用倍增法处理出lca 然后对每个查询二分深度 处理出A集合的点在二分深度的祖先集合 然后判断B集合里是否存在一个点的祖先在上述集合里#include <bits/stdc原创 2017-05-11 21:52:31 · 1010 阅读 · 0 评论 -
队内训练赛三
PS:来点简单dp + 贪心A:51Nod - 1183 编辑距离状态转移int cost = (s1[i-1] == s2[j-1] ? 0 : 1);int delection = dp[i][j-1] + 1;int insertion = dp[i-1][j] + 1;int substitution = dp[i-1][j-1] + cost;dp[i][j原创 2017-04-06 22:34:43 · 257 阅读 · 0 评论 -
2017浙理工校赛重现-G.最佳淘汰算法(优先队列模拟)
题目链接要先预处理一下每一个值的下一个相同值的位置。注意要把各元素放在一个结构里,在用优先队列进行排序。 之前分开放一直过不了。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <vector>#include <queue>using names原创 2017-03-22 15:34:06 · 585 阅读 · 0 评论 -
2017浙理工校赛重现-H.玩具(尺取+RMQ)
题目链接就是枚举区间,rmq查询区间最大值。ps:跟暴力程序对拍了下才发现查询函数写错了。。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#defin原创 2017-03-22 15:28:08 · 237 阅读 · 0 评论 -
优先队列的优先级定义
这是stl里定义的比较结构 我们都知道用greater是小顶堆,less是大顶堆,默认是less。/// One of the @link comparison_functors comparison functors@endlink. template<typename _Tp> struct greater : public binary_function<原创 2017-03-20 17:04:00 · 1768 阅读 · 0 评论 -
SPFA的两种优化SLF和LLL
记下SPFA的两种优化,大牛请无视SPFA算法有两个优化算法 SLF 和 LLL: SLF:Small Label First 策略,设要加入的节点是j,队首元素为i,若dist(j) < dist(i),则将j插入队首,否则插入队尾。 LLL:Large Label Last 策略,设队首元素为i,每次弹出时进行判断,队列中所有dist值的平均值为x,若dist(i原创 2017-03-20 12:57:35 · 10578 阅读 · 0 评论 -
51nod-1191 消灭兔子(贪心)
题目链接这题是上题的进阶。 对于每支箭,我们要找到第一个血量大于伤害值的兔子的位置pos,那么我们把这只箭的伤害值设为pos-1的兔子的血量值 跟上题类似,从后往前贪心 将伤害值为当前兔子血量值的价格放入小顶堆,并且清空数组,因为血量可以相等,防止重复放入。 每次选取堆顶元素就可以了。 如果在消灭某一只兔子时堆为空时,那么说明没有弓箭可以消灭这只兔子,所以输出No原创 2017-03-02 21:15:39 · 307 阅读 · 0 评论 -
51nod-1163 最高的奖励(贪心)
题目链接因为天数最大为n,所以所有结束时间大于n的都可以设为n 考虑天数 从后往前贪心,将结束时间为当前天的奖金放入大顶堆 然后只要选取堆顶元素就行了。 这样可以保证堆中的元素的结束时间都大于等于当前天,然后只要选取奖金最大的就行了。#include <bits/stdc++.h>using namespace std;#define cl(a,b) memset原创 2017-03-02 21:08:14 · 236 阅读 · 0 评论 -
hiho一下 第136周-优化延迟(二分)
题目链接二分缓冲区k的大小,用优先队列模拟,不断记录满足条件的最小值#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;typedef long long LL;const int maxn =原创 2017-02-09 16:16:15 · 214 阅读 · 0 评论 -
【loj】#6009. 「网络流 24 题」软件补丁(状态压缩+最短路)
某公司发现其研制的一个软件中有 n 个错误,随即为该软件发放了一批共m 个补丁程序。每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才可以使用。一个补丁在排除某些错误的同时,往往会加入另一些错误。换句话说,对于每一个补丁 i ,都有 2 个与之相应的错误集合 B1(i) 和 B2(i) ,使得仅当软件包含 B1(i) 中的所有错误,,而不包含 B2(i)原创 2017-07-23 15:59:37 · 377 阅读 · 0 评论