ACM算法
文章平均质量分 67
zhouxc2007
这个作者很懒,什么都没留下…
展开
-
堆的一些操作
#include "iostream"using namespace std;int n,size,t; //保持最大堆的性质void Max_Heap(int s[1000],int a){ // cout int record; int l=2*a;//左孩子 int r=2*a+1; //右孩子 if(原创 2009-02-21 15:33:00 · 200 阅读 · 0 评论 -
KMP算法学习体会
KMP算法学习体会 这个算法数据结构课上老师讲过,当时大致听懂了,一直没写过,今天抽个时间复习了一下。以下是一点体会。 给定两串S,T,判断串T是否与S中的一个字串匹配,S为主串,T为模式串.KMP算法可以在O(m+n)时间内实现串的匹配,其中m,n分别为两串的长度。 判断两个串是否配,就是把主串与模式串中的字符一一比较,若当前的字符匹配则在比后面的。关键是当前不匹原创 2009-05-31 21:59:00 · 636 阅读 · 0 评论 -
Range Minimum Query and Lowest Common Ancestor 收藏
【原文见 http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor】 作者: By danielp转载 2009-05-30 10:29:00 · 532 阅读 · 0 评论 -
带负权的单源最短路径
昨天比赛的时候碰到了带负权的单源最短路径的题目,没做出来,Dijkstra不可以求带负权的最短路。学习了一下Bellman-ford算法。 Bellman-ford算法可以在O(VE) 的时间内求出带负权的单源最短路(除存在负权回路),而且可以判断图中是否存在负权回路。我觉的Bellman-ford算法的关键点在于在一个|v |个点的图中,任意两个点之间的最短路之间最多有|v原创 2009-05-03 18:02:00 · 1504 阅读 · 0 评论 -
深入浅出素数算法
注意: 如果没有特殊说明, 以下讨论的都是针对n为素数时的时间复杂度1. 根据概念判断: 如果一个正整数只有两个因子, 1和p,则称p为素数.bool isPrime(int n){ if(n for(int i = 2; i if(n%i == 0) return false; return true;}时间复杂度O(n).2. 改进转载 2009-04-28 16:52:00 · 1616 阅读 · 0 评论 -
归并排序及逆序对算法
排序都用Qsort了,别的排序算法不怎么用,但有些排序的思想很重要。碰到一道求逆序对的题,要用到归并排序,学习了一下归并排序。归并排序是用分治思想,分治模式在每一层递归上有三个步骤: 分解:将n个元素分成个含n/2个元素的子序列。 解决:用合并排序法对两个子序列递归的原创 2009-04-24 19:04:00 · 2003 阅读 · 0 评论 -
汇总]搜索题目推荐及解题报告
[汇总]搜索题目推荐及解题报告(8.28更新)2008-06-28 14:31以前的帖子要么太分散,要么太凌乱,故现在开始,对每一个分类做一个长期更新的汇总贴。格式说明:题目名后面列出个人此题的大致难度(对菜鸟而言)POJ 1069 -The Bermuda Triangle(难)http://acm.pku.edu.cn/JudgeOnline/problem转载 2009-04-18 23:49:00 · 1432 阅读 · 0 评论 -
[汇总]字符串题目推荐及解题报告
[汇总]字符串题目推荐及解题报告2008-06-28 14:31说明:小弟才疏学浅,最近发现此文点击率较高,还有一些转载,实在是万分惭愧。这份题目推荐里面,实在水题烂题太多,上不得台面,等今年赛区赛结束后,本菜一定好好清理下此贴。POJ 1002 - 487-3279(基础)http://acm.pku.edu.cn/JudgeOnline/problem?id=1转载 2009-04-18 23:51:00 · 889 阅读 · 1 评论 -
stl几个(set map vector string)用法
string使用总结1.初始化string s0;string s1("hello");string s2(5, a); //s2 = aaaaa;string s3(s1); // s3 = hellochar str[100] = "aaaaabbbbbaaaaaaaaaaaaaaaaa";string s4(st转载 2009-04-18 23:24:00 · 1187 阅读 · 0 评论 -
一些图论、网络流入门题总结、汇总
一些图论、网络流入门题总结、汇总2008-09-03 11:43最短路问题此类问题类型不多,变形较少POJ 2449 Remmarguts Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.e转载 2009-04-18 23:46:00 · 4497 阅读 · 1 评论 -
一些简单二叉查找树的操作
#include "iostream"#include "stdlib.h"#define N 10using namespace std;typedef struct BitNode{ char data; struct BitNode *Left;原创 2009-03-29 19:19:00 · 207 阅读 · 0 评论 -
一些基本的并查集的操作
void Make_set(int a){ p[a]=a; rank[a]=0; } 带路径压缩的Find—set:int Find_set(int a){ if(p[a]!=a) p[a]=Find_set(p[a]); return p[a]原创 2009-02-22 20:18:00 · 243 阅读 · 0 评论 -
匈牙利算法求二分图的最大匹配
什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。最大流算法的转载 2009-02-23 22:12:00 · 901 阅读 · 0 评论 -
后缀数组学习笔记(一)
研究了一个星期的后缀数组,过程很痛苦,但还是有很多收获,付出更收获真的成正比的。发现后缀数组的强大功能,需慢慢领会。后缀数组可以代替后缀树巧妙的解决大多数字符串问题,其强大功能主要有三个数组: 1.suff[i],存放字符串S生成的后缀数组中排在第i位置,也就是将的n个后缀从小到大排序后把排好序的后缀的开头位置顺次放入到suff中。 2.rank[i],rank数组跟suff原创 2009-05-29 23:56:00 · 970 阅读 · 0 评论