自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许增强

生活就像心电图,想要一帆风顺除非你死了~

  • 博客(101)
  • 收藏
  • 关注

原创 最短路径

图论中的经典算法,分为:SSSP(单源最短路径)和APSP(所有点对之间的最短路径)。SSSP是指在具有V个顶点,E条边的图G中,从某一顶点Vi出发,到其余任意一顶点Vj的最短路径。常用算法为:Dijkstra算法,Bellman-Ford算法和SPFA算法。Dijkstra算法:假设图为不带负权的有向图或无向图,利用贪心的策略,每次新扩展一个距离最短的点,再以这个为中间点,更新其他所

2012-05-11 16:02:09 826

原创 不行啊~~

不行啊~英语不行啊,太多的题目都是英语题目,最近装了Linux,还没汉化,那个英语完全靠猜,决定了,以后做英语题目要慢慢翻译下,即使翻译的很丑~~发现英语真的很重要~

2012-05-08 13:13:52 410

原创 动态规划

从今天开始学习动态规划,个人觉得这是一个比较难的问题。我一直不敢做,但是为了这次能够参加省赛不得不去学了。看着以前的博文,觉得自己懂得知识好少,还有很多虽然写了,但是还是懵懵懂懂,算了,还是一步步来,以后再去深挖吧,最起码先要懂有这回事吧~~~加油!!动态规划一般可分为线性DP(导弹拦截),区域DP(石子合并),树形DP(二分查找树),背包DP(背包问题,装箱问题)四类。动态规划常用来求解

2012-05-06 22:56:20 715

原创 递归算法

递归算法:有点像高中学的数列知识,定义说不清楚,可以百度,最常见的斐波那契数列的通项公式就可以使用递归的方法实现,还有一个就是汉诺塔的问题,又称河内塔,递归实现的方法是: #include#includeusing namespace std;int step,n;void hanoi(int m,char a,char b,char c)//将a上编号为1到m的圆盘从a经过b

2012-05-01 10:18:24 643

原创 树状数组

我们知道要是一个数组的和C[i]=A[1]+A[2]+.......+A[i],那么我更改其中任意一项值A[i],那么C[i],C[i+1],C[i+2]....C[n]都会随之变化,所以我们要调整C[]当n非常大时就需要很长的时间,必然会导致超时。这样就可以引入树状数组,它的修改和求和的复杂度为nlogn.树状数组是一种数组结构,能够高效地获取数组中连续n个数的和。下面这张图是基本上大多

2012-04-30 19:50:12 736

原创 扩展欧几里得算法

扩展欧几里得算法:对于不完全为0的非负整数n,m,gcd(n,m)表示n,m的最大公约数,必然存在整数n,m使得gcd(n,m)=nx+my。假设n>m,当m=0时,gcd(n,m)=n,这个时候x=1,y=0;其他情况:设n*x1+m*y1=gcd(n,m),m*x2+(n mod m)*y2=gcd(m,n%m);由欧几里得算法有:gcd(n,m)=gcd(m,n%m);则有:n*

2012-04-29 11:58:52 518

原创 BFS~~~迷宫

例题1:NYOJ 58(最小步数),保存每一步的步数即可,至于标程中是另外一种算法,后面的讨论个人觉得对这个代码的评价不好,因为标程中涉及到的是另外一种算法,不是说他不会用BFS进行广搜,他只是想告诉你这道题用Floyd-Warshall算法可用,不多说了,纯属个人言谈~~用BFS的时候记得把map放在main里面。#include#include#includeusing nam

2012-04-25 15:30:14 2077

原创 NYOJ解题报告~

题1:NYOJ 170(网络的可靠性),即要求每个顶点的连线不能少于两条,只需判断哪些点的连线只有一条后,而这些点重新连为2条边需添加的边数为(sum+1)/2.sum为连线只有一条的点个数。自己可以用笔在纸上画下即可。代码为:#include#includeusing namespace std;const int MAX=10010;#define CLR(arr,val)

2012-04-24 08:31:22 841

原创 一些比较经典的题目和结论

1、点P(x,y)绕点o(x0,y0)逆时针旋转a角度后的坐标为P'(x1,y1):      x1=(x-x0)*cosa-(y-y0)*sina+x0;  y1=(x-x0)*sina+(y-y0)*cosa+y0。2、最大子矩阵和最大子段和模板,例题:NYOJ 1047和NYOJ 14,下面以NYOJ 104代码为例,我觉得也要注意一下讨论区的那组数据,不是输出0,而是-2。

2012-04-20 19:49:43 1924

原创 Polya定理,Burnside引理

涉及到组合数学的问题,首先是群的概念:设G是一个集合,*是G上的二元运算,如果(G,*)满足下面的条件:封闭性:对于任何a,b∈G,有a*b∈G;结合律:对任何a,b,c∈G有(a*b)*c=a*(b*c);单位元:存在e∈G,使得对所有的a∈G,都有a*e=e*a=a;逆元:对于每个元素a∈G,存在x∈G,使得a*x=x*a=e,这个时候记x为a-1,称为a的逆元,那么则称(

2012-04-19 11:14:38 16293

原创 母函数

母函数又称生成函数。定义是给出序列:a0,a1,a2,.......ak,......,那么函数G(x)=a0+a1*x+a2*x2+......ak*xk称为序列a0,a1,a2,.......ak,......的母函数(即生成函数)。例如:序列1,2,3.......n的生成函数为:G(x)=x+2x2+3x3+........nxn。点此链接:百度百科特别的当序列为:1,1,1,1,

2012-04-16 09:41:09 7104

原创 PS

组合键:Alt+Delete键填充的颜色是工具箱下方的"前景色",按Ctrl+Delete组合键,填充的是"背景色"。柔角:工具箱中的"画笔工具",属性栏中有个硬度调节,0为柔角,100为硬角。

2012-03-21 22:26:42 496

原创 检索----二分,二叉查找,hash查找

查找的方法有很多,首先最简单的就是顺序查找,对于那种数据量不大的就可以使用这种方法查找~~~二分检索:首先必须得有序才行,每次把查找的范围缩小一半,采用迭代的方法,设置一个上限hign和下限low,中间值为mid=(low+high)/2,然后用需要查找的值和mid对应的值相比较,比a[mid]大,则low=mid+1,否则:high=mid-1;直到找到或结束为止。模板:low=0,

2012-03-19 11:46:48 2533

原创 RMQ算法

还没有去省里竞赛过~~这回怎么也得争到名额,加油~~一步步来,九月份去了~我只是菜鸟,还太多不懂,只能一个个来,前两天看了下LCA问题,和它与之紧密联系的是RMQ算法,今天无论如何得把这个弄懂了~~RMQ算法全称为(Range Minimum/Maximum Query)意思是给你一个长度为n的数组A,求出给定区间的最值的下标。当然我们可以采用枚举,但是我们也可以使用线段树来优化,复杂度为(n

2012-03-13 22:31:09 17421 4

转载 DOS SET命令详解

一、用set命令设置自定义变量显示、设置或删除 cmd.exe 环境变量。SET [variable=[string]]   variable   指定环境变量名。   string 指定要指派给变量的一系列字符串。要显示当前环境变量,键入不带参数的 SET。SET 命令不允许变量名含有等号。例子:@echo offset var=我是值echo %var%

2012-03-13 08:34:15 5615 2

原创 DOS基础知识

1、DOS中的ATTRIB命令用法:显示或者修改文件的属性windows中的每个文件都包含四个属性:系统,只读,隐藏,存档.attrib指令的格式和常用参数为ATTRIB[+R|-R][+A|-A][+S|-S][+H|-H][[drive:][path]filename][/S[/D]]+设置属性。 -清除属性;R只读文件属性;A存档文件属性;S系统文件属性;H隐藏文件属性;[drive

2012-03-12 20:40:16 2047

原创 贪心~

例题1:TZU 1004(渊子赛马)直接见代码:#include#includeusing namespace std;const int MAX=1010;int n,a[MAX],b[MAX];int main(){ while(cin>>n&&n) { int i,j,sum,num;//sum是渊子赢得场数,num是他人赢的场数

2012-03-11 21:04:36 706

原创 C++--三连棋游戏

生成一个TicTacToc类,编写完成三连棋游戏的程序~~~还有很多不懂~用标准c++编写,但是c++和c的图形函数库不能在VC++ 6.0和DEV中用,所以只能用简单的符号代替了~生成一个表格,得用扩展ASCII码了,下面是生成表格的代码。待以后继续完善~#include#includeusing namespace std;const int MAX=15;//表格的单元个

2012-03-09 21:58:19 3002

原创 最近公共祖先--LCA问题

最近公共祖先问题:给定一颗有根树,求其两个节点最近的公共祖先;节点的祖先即从节点至根的路径上的节点的集合。朴素算法:从u的父亲开始顺着树往上枚举u的一个祖先并保存在一个列表L中,同样枚举v的祖先,当发现v的祖先第一次出现在u的祖先中,输出。在线LCA算法:令L(u)为u的深度,设L(u)LCA的离线(Tarjan)算法:利用DFS+并查集,算法流程:对于新搜索到的一个结点,首先创建由这

2012-03-08 20:54:54 1452

原创 MFC基础知识

在Visual Studio操作环境中的左侧有三个选项,它们包含应用程序的不同视图,FileView(文件视图),ClassView(类视图),ResourceView(资源视图).窗口的创建:①、设计一个窗口类;②、注册窗口;③、创建窗口;④、显示及更新窗口Windows程序的入口函数:WinMain函数int WINAPI WinMain( //WinMain是由操作系统调用

2012-03-07 19:17:00 2854 1

转载 c中的预编译宏定义

转载自:http://www.cppblog.com/tommyyan/articles/82040.html在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的

2012-03-06 16:22:18 710

原创 c++之串流类

定义一个串流类对象,可在头文件中加#include,istringstream对象iss可以将字符串中的数据进行分离。其中有一部分转自:http://www.cppblog.com/tommyyan/articles/8023.html其中:istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。 strstream类

2012-03-06 15:40:39 2475

原创 MFC基本操作

MFC的英文全称是:Microsoft Fundation Classes,也就是微软基本库。下面的这一部分是转载的........下面介绍如何使用Wizard,这个工具的作用是帮助我们一步步地生成一个新的应用程序,并且自动生成应用程序所需的基本代码。①、单击File菜单New菜单项,系统弹出的对话让我们选择所要创建的文件类型,这里的文件分成了Files,Project,Workspa

2012-03-06 09:00:30 3018

原创 拓扑排序

拓扑排序:由某个集合上的一个偏序得到该集合上的一个全序的操作。拓扑排序操作过程:首先选择一个无前驱的顶点(即入度为0的顶点,图中至少应该有一个这样的顶点,否则肯定存在回路),然后从图中移去该顶点以及由其发出的所有有向边,如果图中还存在无前驱的顶点,则重复上述操作,直到操作无法进行。如果图不为空,说明图中存在回路,无法进行拓扑排序;否则移出的顶点的顺序就是对该图的一个拓扑排序。例题1:hdu

2012-03-05 14:49:59 492

原创 KMP算法

设主串为"S1S2S3S4.......Sn",模式串为:"P1P2P3.....Pn";难点是当主串中的第i个字符与模式中的第j个字符不匹配的时候,主串中的第i个字符应该与模式中的那个字符再比较,假设已经匹配的样子是:       S1,S2,...,Si-j,Si-j+1.............Si-1,Si.....Sn(绿色匹配,红色不匹配)

2012-03-03 19:15:24 632

原创 nyist 230(彩色棒)---并查集+Trie树

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=230分析:题目意思是给你一些棒子,两端颜色不同,问相同的颜色两两相连,问是否会连成一个环。连成一个环是欧拉回路,开始的时候有一个题目是判定树一样是判断欧拉回路,用并查集和奇点的个数判断,以棒子为边,以颜色为点,问题是颜色是字符串,转化为并查集中的点是个难点,可以用并查集求解,将边转换为

2012-03-03 10:28:02 440

转载 java高精度、大数运算总结

转载自:http://blog.himdd.com/,同样是一个比较好的博客,推荐~~~~/******************************************************************************************************************************* 为了解决Java基本数据类型在运算时会出现的

2012-03-02 18:23:46 847

原创 字典树

简单题: hdu 1251题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251待会再分析,下面是代码:#include #include using namespace std; const int MAX=26; #define CLR(arr,val) memset(arr,val,sizeof(arr))

2012-03-01 22:27:46 429

原创 nyist 129(It is a tree?)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=129是不是要满足三个条件:1、只有一个根结点,如果有多个则是森林;2、除根结点外其他的节点入度只能是1,如有其它,则不是;3、结点数-边数=1,主要是确保每一个节点只有一个父节点。还要注意空树也是一颗树~~#include#include#includeus

2012-02-29 09:21:54 363

原创 hdu 1856(并查集)

我英语太差了~~处于小学水平,碰到英语题~~唉,不想说,看了别人的解题报告中的题目大意之后才能做,我就转达下题目大意:输入n,然后输入n组数据,表示a与b的关系,最后求出关系最多一组的个数,比方说第一组数据中的最多人一组的就是:{1,2,5,6}~~~#include#include#includeusing namespace std;const int MAX=100000

2012-02-28 14:48:55 367

转载 c/c++中const关键字详解

链接:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777416.html 为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:  常变量:  const 类型说明符

2012-02-28 08:47:05 447

原创 并查集

主要是用来处理两个不相交集合的合并和查询的问题,并用一个树根来表示一个集合。合并操作:要合并两个集合S1和S2,那么只需要把S1的根的父亲设为S2的根即可。优化方案:将深度小的树成为深度大的子树,称为启发式合并。查询操作:查找一个元素属于哪个集合,只需顺着叶子到根结点的找到该元素所在的根结点即可。优化:找到该元素的根结点以后将该元素的的父亲设为根节点--路径压缩。 由于深度经常变化,所以我

2012-02-27 21:50:35 659

原创 琐碎~~~得经常整理收藏

1、有时候用360整理的收藏夹一会在上边一会在侧边栏中,一直喜欢在上面的,可以一下子就点到,有时不懂怎么改,现在知道啦,直接:ctrl+B即可~~~~2、弹出一个网页显示几秒就一闪又没了,阻止的方法:ESC3、题目提交时出现Runtime error如果是由递归破栈导致,可以在头文件后面加:#pragma comment(linker, “/STACK:102400000,10240000

2012-02-27 10:22:16 800

原创 还是nyist 8(一种排序)

呵呵~还是回到这个问题上,想着开始看STL时,想到unique_copy中的删除,正好符合题目要求,但是实际操作过程中却遇到了问题,下面是一个错误的代码:#include #include#include#include using namespace std; int a,b,n;class Rect { public: Rect(){num=len

2012-02-26 19:29:55 474

原创 nyist 12(喷水装置二)---贪心算法

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=12#include#include#include#includeusing namespace std;int n,m,flag;double width,height;struct circle{ public: circle(

2012-02-25 20:51:14 1109

原创 STL(2)

1、STL数学算法#include#include#include#include#includeusing namespace std;int a[10]={1,2,3,4,5,6,7,8,9,10};int b[10]={1,2,3,2,4,5,6,2,8,9}; bool Greater(int x){return x>6;} void square1

2012-02-24 13:36:27 902

原创 STL

1、迭代器,头文件是:#include例题:输入一组数;a,b求a+b;#include#includeusing namespace std;int main(){ istream_iterator input(cin);//生成istream_iterator,能够以类型安全方式从标准输入对象cin输入int值 int a=*input; i

2012-02-23 19:50:38 555

转载 CSDN:谁是最有价值的技术博客?

myan孟岩http://blog.csdn.net/myan综合积分第1名bitfanbitfan(数字世界一凡人)http://blog.csdn.net/bitfan综合积分第2名DanceFireDanceFirehttp://blog.csdn.net/DanceFire综合积分第3名haoel陈皓http:

2012-02-22 10:38:18 1497

原创 八皇后问题(DFS)

例题1:百练 2754描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数

2012-02-21 16:53:28 2303

原创 nyist 8(一种排序)

怎么说呢~很简单的一题,提前了几天来学校了,看看别人,再看看自己,简单的c++基础都没有学会,还学着做OJ上的题目,看来什么都的踏踏实实的,一步一个脚印,不能盲目的做题,要花时间看书和别人好的做法,近几天看了我们c++教程,知道了c++的大概,过两天再看c++ Primer,一定要踏踏实实的,好吧,分析下这个题:       用sort和qsort可以简单过,不分析,现在贴下重载函数的做法,看

2012-02-20 09:48:19 387

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除