
一、ACM_数据结构
文章平均质量分 77
程序员的冷浪漫
爱好coding对世界充满好奇心
展开
-
POJ2513Colored Sticks一笔画问题
题意:给定一些木棒(25w根),木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的。 用到的知识点:欧拉通路+并查集+trie树。 首先我们可以分析问题,这是一个一笔画问题,就是询问是否存在欧拉通路。(不是欧拉回路)原创 2013-08-27 15:23:05 · 891 阅读 · 0 评论 -
hdu 2896 病毒侵袭(AC自动机水题)
注意:每个网站的“源码字符串长度在7000—10000之间”。 我开了一个字符串char c [300],提交结果不会报字符串溢出,而是wrong answer。 所以别吝惜这点小内存。 #include #include #include #include #include #include using namespace std; #define mem(a,b) mem原创 2013-10-09 15:03:10 · 949 阅读 · 0 评论 -
逆序对数 题目
1020 . 逆序排列 时间限制:2 秒 空间限制:65536 KB 分值: 80 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。 1-n的全排列中,逆序数最小为0(正序),最大为原创 2013-05-12 16:43:15 · 1390 阅读 · 0 评论 -
已知二叉树的中序遍历和后序遍历,如何求前序遍历
在已知二叉树的前序遍历和中序遍历的情况下,求出了后序遍历。 那么,对称地,如果已知二叉树的后序遍历和中序遍历,如何求前序遍历呢? 其实思路与上文完全类似。 代码如下: [cpp] view plaincopyprint? // InPost2Pre.cpp : Defines the entry point for the console application.转载 2012-11-04 21:53:03 · 1511 阅读 · 0 评论 -
Range
Problem Description For an array, the range function is defined below: Range(A)=Max(A)-Min(A)+1; For example, suppose A={1,2,3,4,5}, then Range(A)=5-1+1=5. Now, given an array A(length≤100000), you原创 2014-06-29 11:31:33 · 765 阅读 · 0 评论 -
最大K个数
题目:给出N个无序的数,然后找出其中最大的k个数 解题思路: 首先测试数据有可能会有一亿个数,数据量特别的大,数据库不可能存储这么多的数据。如果直接sort排序,NlogN时间复杂度实在是太高,大于10^9。我们可以考虑对数据进行分块读取,每次读取的数据块大小应大于k。 不如先假设第一次读取的数据块前k个数最大,然后把k个数建成最小二叉堆。然后转载 2013-05-09 09:17:43 · 1414 阅读 · 2 评论 -
trie树入门(模板)
hdu 1251 统计难题 通过这道题 来进行trie树入门。 萨芬 #include #include #include using namespace std; #define MAX 26 struct Node{ int isstr;//记录此处是否构成一个串。 int num; Node *next[MAX]; Node(){ mem原创 2013-06-26 17:18:50 · 1074 阅读 · 0 评论