uva
hzycaicai
这个作者很懒,什么都没留下…
展开
-
UVA 100题解
因为今天才开始刷UVA的题目,首先肯定是拿到简单题试试啦,这题水题一个,首先数据量很大,达到了1000000,如果写个函数每次对区间内的数判断循环数的话超时妥妥的,所以首先直接开个大数组,保存下来每个数字的循环次数,然后就是利用好已有的数字的循环次数来减少时间消耗,代码如下: #include #include using namespace std; int a[1000001];原创 2013-03-14 22:18:15 · 737 阅读 · 0 评论 -
UVA 11995
刷水题刷的比较爽,这题也是比较简单的一题,pat上刚刚也考过一个pop sequence与这题类似,直接模拟即可,分别建立stack,queue,priority_queue然后分别模拟push,pop,最后判断即可。 代码: #include #include #include #include #include using namespace std; int main(){原创 2013-03-15 22:11:03 · 611 阅读 · 0 评论 -
UVA 11991
水题一枚,将每个元素与保存它出现位置的vector建立成一个map即可,代码如下: #include #include #include #include using namespace std; map> data; int main(){ int n, m, x, y; while(scanf("%d%d", &n, &m) != EOF){ for(int i = 0原创 2013-03-15 22:08:31 · 548 阅读 · 0 评论 -
UVA 11997之多路归并问题求解
看了下同学的算法竞赛入门经典这本书,正好是UVA的题,于是就按照那个上面的顺序开始刷,看到一道题是LA上的,大概说的是有两个信号源分别按照各自周期发出信号,每个都有相应的周期,然后还有各自ID,然后让你根据发出时间和ID来输出信号源发出信号的序列,感觉类似于CPU的调度问题,就是维护一个优先队列,每次push,pop就行了。 然后书中提到这题的思路可以延伸到多路归并问题的求解中,随后的一题便是多原创 2013-03-20 14:45:41 · 533 阅读 · 0 评论 -
LA3027之并查集
在处理一些有N个元素的合并于查询问题时,我们经常会使用到并查集(union-find set)这样一种树形数据结构来处理,一般来说这样的问题都是看似很简单,但是数据量很大,容易超时,但是采用并查集这种数据结构却能很容易解决这些问题。 一般来说,并查集使用数组来实现,它实现的功能也很简单,主要涉及两个基本操作: 1.合并(union)两个不相交集合 2.判断两个元素是否属于同一集合(find)原创 2013-03-20 15:38:35 · 393 阅读 · 0 评论