随笔分类 -  C++

摘要:#include <iostream>#include <vector>#include <map>#include <string>#include<fstream>#include <stack>#include <assert.h>using namespace std;char s[]=" ababcabcacbab";char t[]=" abcac";int BF (char s[],char t[]){//assert(s[0]);//assert(t[0] 阅读全文
posted @ 2012-10-30 20:49 MFT 阅读(233) 评论(0) 推荐(0)
摘要:kruskal算法其实也是和prim算法一样求无向图的最小生成树,也属于贪心算法,不过prim算法的复杂度为O(n^2),适用于稠密图,而kruskal算法的复杂度为O(eloge),适用于稀疏图。kruskal算法描述很容易理解,如下1.设连通网N=(V,{E}),令最小生成树初始状态为只有n个顶点而无边的非连通图T=(V,{F}),每个顶点自成一个连通分量2.在E中选取代价最小的边,加入到T中,若它的添加使T 中产生回路,则舍去此边,选取下一条代价最小的边3.依此类推,直至T中有 n-1 条边为止但是如何在判定边的添加是否成回路上不失效率?推荐使用不相交集合数据结构--即并查集。在并查集中 阅读全文
posted @ 2012-10-19 20:23 MFT 阅读(331) 评论(0) 推荐(0)
摘要:priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实 现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解#include <iostream>#include <algorithm>#include <vector>using namespace std;class priority_queue{private:vector&l 阅读全文
posted @ 2012-10-17 19:36 MFT 阅读(189) 评论(0) 推荐(0)
摘要:转自http://blog.csdn.net/allenjy123/article/details/6627248红色已经AC一、最短路POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中POJ 3013 - Big Christmas Tree(基础)http:// 阅读全文
posted @ 2012-10-17 16:11 MFT 阅读(289) 评论(0) 推荐(0)
摘要:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 贪心算法的基本思路如下: 1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。 实现该算法的过程: 从问题的某一初始解出发; while能朝给定总目标前进一步 do 求出可行解的一个解元素; 由所有解元素组合成... 阅读全文
posted @ 2012-10-17 15:13 MFT 阅读(212) 评论(0) 推荐(0)
摘要:#include"stdafx.h"#include <iostream>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <fstream>#include <string>#include<vector>#include<set>#include <windows.h>using namespace std;struct PYNode{string pinyin;//合法输入对应的第一个 阅读全文
posted @ 2012-10-16 20:24 MFT 阅读(244) 评论(0) 推荐(0)
摘要:用C##创建COM组件看来是个很简单的功能,但因为此类文章较少,还是有很多不明白的地方需要学习。本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用。本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用。并附有完整测试通过的代码。该功能总体看来很简单。可是我在第一次用C#做COM的时候,痛不欲生。因为很少有人写这类文章。而且就算有代码也是乱帖。根本是让人误入歧途。后来在C# help上面看一个老外写的文章 (上面有一个完整的SQL SERVER实例),才完成该功能。拿来分享。开发工具:VS2008VS2008命令提示符(呵呵,这个你应该可以找到在什么地方吧)附:本文适用任何VS 阅读全文
posted @ 2012-10-14 15:19 MFT 阅读(9860) 评论(0) 推荐(2)
摘要:int scanf(const char *format,...)是scanf的原型,如果scanf操作成功应该返回非负数,否则返回EOF,现在在while(scanf("%d %d",&x, &y) != EOF)的循环里用Ctrl+Z可以退出循环,但是用一些字母就死循环了,我想问一下为什么会这样?返回参数失败scanf不是要返回EOF吗?还用GCC运行程序时发现在程序的末尾加system("PAUSE");程序通不过,而在C99里,要在后面加system("PAUSE");才能让窗口停止下来。想主要还有其他区别。是 阅读全文
posted @ 2012-05-24 22:27 MFT 阅读(291) 评论(0) 推荐(0)