上一页 1 2 3 4 5 6 7 ··· 29 下一页
摘要: /**State: HDU3592 31MS 448K 2009 B C++ *题目大意:* 有N个人按照1-N 的顺序排成一排,给你X个关于他们位置的关系,* 如:a, b ,c,则说明编号为a的人在标号为b 的人的前面,且两人* 最多相隔c距离,再给你Y给位置关系,给出的是a和b两个人至少相* 距c,问1号人和N号人最远相距多少。如果不存在这样的排序,则输* 出-1 ,如果1和N可以相距任意的距离,则输出-2, 否则输出最长* 的距离。*解题思路:* 由于求的是最大的距离,所以要用约束条件的... 阅读全文
posted @ 2012-09-02 15:41 cchun 阅读(203) 评论(0) 推荐(0) 编辑
摘要: /**State: HDU1599 46MS 340K 1460 B C++*题目大意:* 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条* 旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1* ,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过* 2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮* 他找一条这样的路线,并且花费越少越好。*解题思路:* 巧妙利用floyd找最小环即可。注意中间的溢出问题... 阅读全文
posted @ 2012-09-02 15:39 cchun 阅读(211) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 在一棵有向树上,使任意一个点为cap,满足从这个cap能够到达所有点,* 条件是是你可以更改边的方向。求所有改边最小的cap.*解题思路:* 一开始直接暴力肯定是TLE,然后想到了可以从入度为0的点开始考虑,* 复杂度开始下降,但是明显随即数据很难搞定,接着想到了是不是* 重复计算次数太多了。如何减少重复计算?想到这里就没有再细想,* 没想到恰恰这里就是关键,先计算好随意一个cap点的改边数量。之后* 其它的点均可以由这个点来推算出。*/View Code #include <... 阅读全文
posted @ 2012-08-30 10:53 cchun 阅读(353) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 输入一行数字,如果我们把这行数字中的‘5’都看成* 空格,那么就得到一行用空格分割的若干非负整数(* 可能有些整数以‘0’开头,这些头部的‘0’应该被忽略* 掉,除非这个整数就是由若干个‘0’组成的,这时这个* 整数就是0)。你的任务是:对这些分割得到的整数,* 依从小到大的顺序排序输出。*解题思路:* 调用strtok函数来切割,调用atoi来转化为整型即可。*/View Code #include <iostream>#include <algorithm>#include... 阅读全文
posted @ 2012-08-27 02:43 cchun 阅读(303) 评论(0) 推荐(0) 编辑
摘要: /**State: HDU4259 7796MS 3520K 1468 B C++*题目大意:* 一副牌有n张,有k个人,轮流发牌,最后把每个人的牌按照小号在上,大号在下* 的顺序叠放起来,求最少次数使牌恢复原样。*解题思路:* 发现每一张牌都有出现的周期,要恢复原状,只要求出每张牌出现的周期的最小* 公倍数即可。*解题感想;* 用了STL里面的栈,结果20000ms都TLE了。可能是本题数据量太大,不过以后要慎用。* 贡献了4~5个wa,查了好久好久,原来是这里虽然是_int64,但没... 阅读全文
posted @ 2012-08-26 19:11 cchun 阅读(286) 评论(0) 推荐(0) 编辑
摘要: /**State: HDU4263 453MS 3784K 1452 B C++*题目大意:* 有一个无向无权图,只含有红边跟蓝边,判断是否它有一棵* 最小生成树含有确定的k条蓝边。*解题思路:* 求一遍含蓝边最多的最小生成树,其中蓝边数为Max, 求一遍* 含蓝边最少的最小生成树,其中蓝边数为Min.如果k值处于[Min, Max]* 这个闭区间里面,那么该图含有题目要求的MST.* 为什么是这样呢:因为这两棵极端的MST合并在一起只有两种* 情况,1、就是只含有蓝边的环... 阅读全文
posted @ 2012-08-25 21:31 cchun 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 有挺多小细节的,比如布尔条件的判断,还有状态的标志。/**State: HDU1254 31MS 4920K 2558 B C++*题目大意:* 推箱子,1代表墙,2代表箱子,3代表终点,4代表人。*解题思路:* 要先搜出人可以到达的位置,来判断箱子能否朝这个方向* 前进,之后还要注意一个状态的标志,一个位置可以走四次* 因为有四个不同的方向(这是此题的亮处吧)。*解题感想;* 贡献了好多个wa,就是因为没有想对状态。*/View Code #include <iostream>#include <... 阅读全文
posted @ 2012-08-25 19:19 cchun 阅读(381) 评论(0) 推荐(0) 编辑
摘要: A题:/**题目大意:* 基础题,略。就是题目长,看了好久,要加强阅题速度啊。*解题思路:* 略。*/View Code #include <iostream>#include <cmath>using namespace std;const int MAXN = 305;int main(void){#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin);#endif int n, k; while(scanf("%d %d", &n, &k) = 阅读全文
posted @ 2012-08-19 01:18 cchun 阅读(218) 评论(0) 推荐(0) 编辑
摘要: /**State: ZOJ2588 530 MS 12788 KB GNU C++*题目大意:* 给出一个无向图,输入n(表示n个定点,1~n), m(m条边,有重边),* (2 <= N <= 10 000, 1 <= M <= 100 000),求这个无向图中的桥,* 并输出桥属于输入中边的id.*解题思路:* 知道求割点与求割边是很相似的,自己用笔模拟一下就知道,如果* 存在low[v] > dfn[u].那么uv就是割边。看似与割点异常类似,但是* 用了原始的求割点的tarjan敲了几遍后发... 阅读全文
posted @ 2012-08-18 09:31 cchun 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 一道好题啊,加深了我对lca的理解。/**State: POJ3694 Accepted 6924K 407MS C++ 2466B*题目大意:* 给一个无向图,该图只有一个连通分量。然后查询q次,q < 1000,* 求每次查询就增加一条边,求剩余桥的个数。*解题思路:* 求出搜索树的时间戳dfn,发现两点的lca的时间戳大于左子树,小于右子树。* 之后可以通过合并连通分量的方式来计算剩余的桥的个数。合并连通分量的* 方法,发现用并查集来合并,要方便得多啊,很容易合并掉两个大块。所以* ... 阅读全文
posted @ 2012-08-18 09:30 cchun 阅读(1721) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 29 下一页