首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2013腾讯编程马拉松预赛第2场(3月22)(HDU 4510 HDU4511 HDU4512 HDU4513 HDU4514)

2013-03-27 
2013腾讯编程马拉松初赛第2场(3月22)(HDU 4510 HDU4511 HDU4512 HDU4513 HDU4514)这次的比赛。。被虐爆了。。

2013腾讯编程马拉松初赛第2场(3月22)(HDU 4510 HDU4511 HDU4512 HDU4513 HDU4514)

这次的比赛。。被虐爆了。。做了一个多小时确定下来除了第一题我都做不出来之后。。。我就。。。就。。。。。


第一题:小Q系列故事——为什么时光不能倒流

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4510

题解:水题,格式要注意,还需要注意的是时钟。。。一圈12小时。。不是24小时。。。

#include <iostream>using namespace std;#define min(a,b)((a)<(b)?(a):(b))#define max(a,b)((a)>(b)?(a):(b))const int maxn = 1000005;int fa[maxn], len[maxn];int n, m;int find(int x){if (x == fa[x]) return x;return find(fa[x]);}int main(){while (scanf("%d %d", &n, &m) != EOF){int i;bool flag = false;for (i=0; i <= n; i++)fa[i] = i;memset(len, 0, (n+1)*sizeof(len[0]));for (i=0; i<m; i++){int a, b, length;scanf("%d %d %d", &a, &b, &length);int faa = find(a);int fab = find(b);if (faa == fab) flag = true;else if (!flag)//剪枝{int c = min(faa,fab);int d = max(faa,fab);fa[d] = c;len[c] += length;}}if (flag)puts("YES");else{int maxlen = 0;for (i=1; i<=n; i++)if (len[i] > maxlen)maxlen = len[i];printf("%d\n", maxlen);}}return 0;}


6楼woshiws1989昨天 17:59
不清楚╮(╯▽╰)╭
5楼longshuai0821昨天 17:59
应该是ac自动机上进行dp,不过我没实现
4楼longshuai0821前天 07:52
1005用并查集这个数据能过吗n4 3n1 2 1n1 3 1n1 4 1n题目意思是2,你的输出是3,这不对吧?
Re: liuqiyao_01昨天 17:11
回复longshuai0821n大哥,。。你好好看看。。题意实际上是求,最大连通分量的长度。。。。。。所以答案肯定是3.。。。。
Re: liuqiyao_01昨天 17:56
回复longshuai0821n啊。。。但是这个代码AC了。。。。。
3楼wangyuquanliuli前天 14:56
大哥每天都比?不是只用参加一场的么?
Re: liuqiyao_01前天 18:00
回复wangyuquanliulin额。。本弱菜用同学的账号。。。都注册了。。。。
2楼Qiufenghan前天 11:23
第二题:小明系列故事——女友的考验n连接:http://acm.hdu.edu.cn/showproblem.php?pid=4511n题解:谁会啊。。最后了全场也就5个AC的有木有!!!nn求单向图的最短路径,因为只能从小号码到大号码,所以路径比完全图小一些。n对每个约束条件构造单独的反向链表,每加入一个点检查到路径里,检查改点是否为某个反向链表的根结点,如果是,逆序检查路径和约束反向链表,如果match,该路径不合法。否则是一个合法点。如果是终点计算路径长度。遍历所有路径,找到最小路径或没有合法路径。nn复杂度:O(n*n*n)n优化点:1、如果约束只有两个点,可以不建立反向链表,直接在图中删除路径。n 2、缓存两个点之间的距离。
Re: liuqiyao_01前天 14:53
回复Qiufenghann多谢指点!
1楼alzq_zf前天 09:51
第2题看了下,有点思路,仅供参考^_^ 怀念以前学校的时光啊~nn1- 题目提供的应该是一个2维空间的平面图。n2- 题目提供的诸如1->2->3的限制,其实有点误导。因为:n 既然为平面图,我们可以知道,平面内2点间直线距离最短。那么限制1->2->3这个基本等于没有限制,因为我们为什么不直接从1->3而必须要经过2.同样也就意味着如果有一个条件约束是a1->a2->a3->a4->a5...->an。假设条件中没约束你从a1到达列表中除a2外任意一点则这个约束其实是无效的。(如没有约束a1->a3或a1->an,此约束都是无效的)n3- 题目最关键的是需要根据给定的条件自行建立一个平面中的图结构。通过第2点的理解,基本可以推论出一个图的建立方式。nn图建立出来,使用最基础的最小路径查找就玩了。其实在建立图的过程应该就已经出结果了。nn纯粹无聊,想想,YY下
Re: liuqiyao_01前天 10:07
回复alzq_zfn多谢指点!

热点排行