随笔分类 -  01. . . . . |HRBUST

HRBUST 2078:糖果(模拟,贪心)
摘要:题不难,但作为一道恶心到了我的题,我还是记录一下的好。题意:n个人围一圈,要求:相邻两人,分数高的要比分数低的得到更多的糖果,若分数相同则必须得到相同数量的糖果。问满足要求的最少需要分配的糖果数。(N#include #include using namespace std;#define N 1000010struct AA{ int id; int v; int num;}a[N], stk[N];bool cmpV(const AA &a, const AA &b) { return a.v 1 && stk[top-1].v == stk[0].v) { 阅读全文

posted @ 2014-03-31 19:11 ShineCheng 阅读(257) 评论(0) 推荐(0)

HRBUST 2064:萌萌哒十五酱的宠物~(最近公共祖先LCA)
摘要:题意:一个n个点的树,询问某两点之间的简单路径,问路径上任选三边能否组成一个三角形。 N= A[i-1] + A[i-2];观察可以发现其增长类似斐波那契,又因为权值=45个时,必然可以组成三角形。剩下的,就暴力一下就好了。确定路径边的个数的方法是深度结合lca来做。暴力的话就是两点向上攀,直到公共祖先。然后sort一下,然后检查是否存在 A[i] #include #include using namespace std;#define N 100010struct BCJ{ int fa[N]; void init(int n) { for (int i = 0;... 阅读全文

posted @ 2014-03-25 19:47 ShineCheng 阅读(215) 评论(0) 推荐(0)

HRBUST 2072:萌萌哒十五酱的礼物~(树,字典树)
摘要:题意:n个点的一棵树,树的边上有权值。一条路径的权值定义成这条路径上所有边的权值的xor。问所有路径的最大权值是多少。思路:首先,树上任意两点之间的路可以表示成 这两点到根节点的路- 其最近公共祖先到根节点的路*2.那么这里如果是用xor操作,重复的那部分正好就没了。深搜一边,得出所有点到根节点的权值,这样问题就边成了n个数字,将其中两个xor,问得到的最大值是什么。然后这里我卡住了……实际上做法非常……用字典树记录所有这些树(二进制),然后对每一个数,去找现在存在的和它xor之后答案最大的那个数。暴力完n个数就得到答案= =……坑:深度太深爆栈了。只能自己写。用栈模拟了递归,但感觉又不像是深 阅读全文

posted @ 2014-03-25 19:04 ShineCheng 阅读(235) 评论(0) 推荐(0)

导航