随笔分类 -  多校联合比赛

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4366题意:给你 n个点。他们有 上下级关系,一个点只有一个上级,一个上级 可以有多个下级,每个点有两个属性,能力值 、忠诚度(每个节点的忠诚度不同),求我们要删除 一个节点, 则我们 需从 其下级中选出 一个节点,其能力值 比该节点 要高,且 忠诚度是(比其能力高的下级节点中的)最高题解:首先将树状结构,转化为 线状结构, 可以遍历一遍将树上每个点标记为一维区间上的某个点,且在同一棵子树内的点是连续的一段。然后,将所有点按能力从大到小排序,能力相同的编号小的排在前面,然后扫描一遍,扫描时维护一颗线段树,(. 阅读全文
posted @ 2012-08-17 08:47 Szz 阅读(502) 评论(2) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4379The More The Better Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 800Accepted Submission(s): 208Problem Description Given an sequence of numbers {X1, X2, ... , Xn}, where Xk = (A * k + B) % mod. Your 阅读全文
posted @ 2012-08-16 21:57 Szz 阅读(306) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4360题意:有n个点 ,m条边,没条边 哟 4 个属性 起点 u 终点v 长度 l 和 编号 k (k为 L,O,V,E 中的任意一个),求 从1 到n 点的 一条路,要求 含有完整的 1个 或多个 love 串 ,且是 最短的 每条边除了有边权以外,还有一个字母标记。标记可以是“LOVE”里面任意字符。每个点,要拆成四个点,分别代表到达该点的标记为L,O,V,E的最短路。第一步就是求最短路,直接spfa就可以了。trick在于,至少要找到一个LOVE串,在只有一个节点的时候,有几条自环,至少必须走LOVE四 阅读全文
posted @ 2012-08-16 08:07 Szz 阅读(407) 评论(0) 推荐(0)
摘要:Capturing a country Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 380Accepted Submission(s): 164Problem DescriptionAnt and Bob two army want to capture a country. The country is consist of N cities. To capture the city i, it takes Ant A[i] minu. 阅读全文
posted @ 2012-08-08 22:01 Szz 阅读(308) 评论(0) 推荐(0)
摘要:1009直接贪心。类似于SPFA算法。我们要求损耗最小,也就是剩余最大。对于每个节点,我们记录起当前可以达到的剩余最大电力。和 Dijkstra算法相似,我们这里每次找寻的是尚未标记的拥有最大值的结点,并把这个最大值作为当前结点的最终结果,标记此结点并通过当前结点拓展与之 相连的结点。因为从一个结点传输电力到另一个几点,电力的总量是不会增加的。所以,在以后的贪心过程中,不会更新之前已经标记的结点,因为不可能有更大的 值。这样只要求得最后到达t的最大剩余电力就能得出答案。View Code #include<cstdio>#include<cstring>#include 阅读全文
posted @ 2012-07-26 20:34 Szz 阅读(272) 评论(0) 推荐(0)
摘要:题意:给定的三个由'0','1','2','3','?'构成的字符串A,B,C。其中'?'表示该位可能是0,1,2,3,现在如果有三个四进制的数依次是这三个字符串,若有A+B=C,则称[A,B,C]是这三个字符串的一组解,现在给定A,B,C,求解的个数。题解 1:搜索:一开始觉的就是用搜索的办法枚举 a和b的所有情况然后和c比较;这个想法是对的,但怎么实现呢,一开是以为将 a,b分别放到两个数组里 分别搜索,但是 怎么搜啊,两个数组后来想到 ,将a和b 存到一个数组里面,前六位存a 从第七为开始 存 阅读全文
posted @ 2012-07-24 16:44 Szz 阅读(228) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4308 题解: 最短路,将p看成一个点 dij()硬是tle 我就奇怪了 最多就5000*5000啊,;最后该的SPFA()1A 。。。。。。。#include<stdio.h>#include<string.h>#include<iostream>#include<vector>using namespace std;#define maxn 5001#define inf 999999#define CL(V,num) memset(V,num,sizeof 阅读全文
posted @ 2012-07-23 08:48 Szz 阅读(289) 评论(0) 推荐(0)
摘要:这道题问的就是将1个串如何变为stringA+stringB的形式,使得stringA是stringB经过映射得到相同的串。映射那步其实没有什么 价值,假设str为原串s经过映射后得到的串,我们可以以str为模式串,以s为原串做一次扩展KMP,得到extend数组,extend[i]表示原 串以第i开始与模式串的前缀的最长匹配。经过O(n)的枚举,我们可以得到,若extend[i]+i=len且i>=extend[i]时,表示 stringB即为该点之前的串,stringA即为该点之前的str串,最后输出即可。#include<stdio.h>#include<stri 阅读全文
posted @ 2012-07-21 09:32 Szz 阅读(587) 评论(0) 推荐(0)
摘要:题意: 在一条路上 假设小Q一开始在0点,给出道路的长度l和输入的次数k输入有两种形式:1:0 x 表示在x出掉一块蛋糕 2:1 表示要吃蛋糕 ,每一次要吃时,都找距离最近的有蛋糕的点,若左右距离相等,则按前一次的方向,若左右都没有,则在原地不动 #include<stdio.h>#include<iostream>#include<string.h>#include<set>using namespace std;set<int>s;int num[100010];int main(){ int t,l,n,a,b,r,ans,p; 阅读全文
posted @ 2012-07-20 14:14 Szz 阅读(464) 评论(0) 推荐(0)