自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

原创 希尔排序

初级排序算法优化:希尔排序

2015-09-21 15:41:14 590

原创 虚函数和纯虚函数

虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!(虚函数在基类中有声明和定义,该基类是可以被实例化的。)纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!(纯虚函数在基类中只有声明,没有定义,子类必须实现,该基类无法实例化。)多态和非多态的区别实质区别就是函数地址是早绑定还是晚绑定,如果在编译期

2015-09-10 22:15:22 575

原创 大整数类BigInteger

参考资料:《算法竞赛入门经典》使用C++实现大整数类,并重载了大整数类的=、>>、、+等操作符。#include #include #include #include #include #include using namespace std;struct BigInteger{    static const int BASE = 10

2015-08-09 16:07:35 1035

原创 HTML5中的拖放事件

在HTML5中,提供了直接支持拖放操作的API,能更加轻松的实现拖放操作以及处理拖放事件。

2014-02-13 15:25:25 746

原创 HTML5中FileReader中的事件

FileReader接口中包含了一套完整的事件模型,可用于捕捉读取文件时的状态。事件列表如下:onbort:中断时触发onerror:出错时触发onload:文件读取成功完成时触发onloadend:读取完成触发,无论成功还是失败onloadstart:读取开始时触发onprogress:读取中下面给的源代码展示了文件读取过程中各事件的触发顺序:无标题

2014-02-13 14:18:10 5820

原创 HTML5中使用readAsText方法读取文本文件

源代码:无标题文档function readAsText(){ var file=document.getElementById("file").files[0]; var reader=new FileReader(); reader.readAsText(file); reader.onload=function(e) { var result=document.

2014-02-13 11:14:02 29999 7

原创 使用readAsDataURL方法预览图片

使用FileReader接口的readAsDataURL方法实现图片的预览。源代码:通过filereader接口读取文件function readAsDataURL(){ if(typeof FileReader=='undifined') //判断浏览器是否支持filereader { result.innerHTML="抱歉,你的浏览器不支持 FileReade

2014-02-13 10:45:03 12905

原创 变量命名规则

不管是什么语言,变量命名都是很重要的,优秀的变量命名能让程序自己说话,也能让我们更加清楚程序的结构和执行过程。经典命名规则:匈牙利命名法:该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象描述。如i表示int,所有i开头的变量命都表示int类型。s表示String,所有变量命以s开头的都表示String类型变量。骆驼命名法:

2014-01-01 23:32:48 736

原创 map

1、Map Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后

2013-12-27 19:34:53 535

原创 C++模版

1、模版模版是实现代码重用的一种机制,可以实现类型参数化,意思就是在模版中参数类型也是一种参数。模版可以分为函数模版和类模版。  2、函数模版 函数模板的一般形式如下:Template 或者也可以用typename  T>返回类型 函数名(形参表){//函数定义体 } 写法举例:template //template是关键字,表示声明一个模版,不能省

2013-12-27 14:38:13 568

原创 HDU1839---Delay Constrained Maximum Capacity Path

http://acm.hdu.edu.cn/showproblem.php?pid=1839解题思路:二分+最短路直接对答案进行二分枚举,然后用spfa求最短路,如果边的权值小于当前枚举的答案,那么这样的边是不能走的。源代码://二分+最短路#include #include#include#include#includeusing namespace std;

2013-12-05 18:40:21 721 1

原创 HDU1595---find the longest of the shortest

http://acm.hdu.edu.cn/showproblem.php?pid=1595题目大意:从城市1到城市n有m条双向路,其中有一条路是坏的,但是我们不知道到底哪条路是坏的。考虑到最坏情况,我们从城市1走到城市n所需要的最少时间是多少。解题思路:起初,想法很单纯,枚举每一条边为坏边,求1到n的最短路,然后在这些最短路中取最大值。思路是正确的,但是会超时

2013-12-05 13:04:33 788 1

原创 HDU2612---Find a way

题意:找到Y点和M点到@点的距离之和最小。解题思路:从Y点进行一次bfs,求取所有点到Y点的距离,存储在dis[0][i][j]中;从M点进行一次bfs,求取所有点到M点的距离,存储在dis[1][i][j]中;最后,遍历整个图,求取所有@点的dis[0]+dis[1]的最小值。反思:这个题目思路很简单,但是我一直在一个地方跪了。在初始化dis数组的

2013-11-30 20:38:39 644

原创 HDU1180 诡异的楼梯--BFS

中文题目,大家自己去读。与一般的广搜题目不同的是,这个题目中有一个变数,那就是楼梯的方向,这个地方坑了我好久。(主要原因是自己手贱,在判断判断楼梯方向与当前方向是否一致的时候,最后没有返回0)。我的做法是,如果下一个点是楼梯的话,判断方向与现在所走的方向是否一致,如果一致,那么直接经过楼梯;如果不一致的话,那么就等待1s钟的时间,让楼梯的方向转过来,使得楼梯的方向与当前

2013-11-28 19:31:39 791

原创 poj 3417--LCA+树形dp

题目链接:http://poj.org/problem?id=3417题目大意:首先给定一棵有n个点的树,然后在这棵树上添加m条边。求去掉原树上的一条边和添加的一条边之后,能使得这棵树分裂的放法数。解题思路:主要思路是来自网上的大神,有事不懂请问度娘。基本思想:添加一条边之后,必定形成一个环。如果原树上的某一条边没有被环覆盖,那么这样的边是很

2013-08-18 16:28:48 958

原创 poj 3272——Cow Traffic——树形dp

题目链接:http://poj.org/problem?id=3272题目大意:给定一张有向图,以度数为0的点为起点,以n号点为终点,求经过的边中最频繁的边被经过的次数。解题思路:开始的时候看错了题目,以为是求起点到终点的所有的路径数目,主要是被Hint坑了。后来看了下别人讲的题目意思,就比较容易。我的做法如下:定义了两个数组:dp1[i],

2013-08-16 10:51:11 804

原创 HDU 4671——模拟题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4671题目意思:给定n个服务器,m个数据库。在访问数据库的时候需要服务器的工作,并且每个服务器对数据库的访问是有优先级的。现在就需要你给出每个数据库的服务器的优先级,使得所有的服务器尽可能保持平衡。平衡的定义:每台服务器的工作次数之差不大于1。有可能会有一台服务器

2013-08-15 23:57:31 606

原创 poj1659—青蛙的邻居—度数与可图

题目链接:http://poj.org/problem?id=1659 解题思路:题目有两个要求,1是判断给定这些点的度数,问这些点是否可图;2是需要输出这些点与点之间的关系。这个两个问题是可以一起解决的。首先我们可以将每个点的度数是可以计算出来的,按照度数将所有的点排序之后。从度数最大的点开始,我们可以将其度数分配给比它度数小的一些点。比如:节点编号:2

2013-08-14 20:54:19 654

原创 poj3160——强连通+缩点+树形dp

题目链接:http://poj.org/problem?id=3160题目大意:一张有向图,有n个点,m条边,输入“i——j”表示可以从i点走到j点,是单向的。每个点都有权值。你可以任意选定一个点作为起点,去遍历这个图,当经过一个点的时候,你可以选择取或者不取该点的权值(因为权值有负值)。求能获得最大权值。解题思路:如果是一张有向无环图的话,那么就很

2013-08-12 12:25:35 1038

原创 Poj2762——有向图缩点+拓扑排序

题目链接:http://poj.org/problem?id=2762题目大意:给定一个有向图,问该图是否连通。有向图连通性的定义:对于任意两个点u和v,总会存在一条路径从u——v或者是从v——u。解题思路:如果是没有环的有向图的话,那么只有当所有的点都在一条链上的时候,图才是连通的。第1步:求取强连通分量,对有向图进行缩点。建立新图。第2步

2013-08-12 10:32:09 872

原创 搜索_Poj 1465_剪枝_余数判重

题目链接:http://poj.org/problem?id=1465题目大意:给你m个数字,这些数字都是小于10的,让这m个数字组成一个数字k,使得k%n==0。求最小的k。如果这样的k是不存在的,则输出“0”。解题思路:BFS+余数判重。余数判重:设两个整数a和b,如果a%n==b%n,那么(a*x+c)%n==(b*x+c)%n。所以如

2013-08-11 21:12:07 683

原创 HDU 1269——迷宫城堡

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269解题思路:这个只需要判断整个图是否为强连通就可以了,所以我用的是一种比较懒的方法。如果是强连通图,那么从任意点出发,不管是正向遍历还是反向遍历,必定都能遍历完整张图。我的做法是,从1号点开始正向进行1次dfs,求取能遍历的点数。接着又从1号点开始反向进行1次dfs,

2013-08-11 15:00:01 753

原创 Poj 3660 Cow Contest——弗洛伊德算法+拓扑排序

题目链接:http://poj.org/problem?id=3660题目大意:有n头牛,给定n头牛的先后关系,按照这个先后关系给n头牛排序。当然,有些牛的位置是可以确定的,而有些牛的位置是不确定的。求能确定位置的牛的头数。解题思路:采用拓扑排序。当前状态,如果入度为0的点不止一个,那么很显然,这些点都不能确定位置。如果入度为0的点的只有一个,那

2013-08-10 10:32:08 1150

原创 Poj 1094 Sorting It All Out——拓扑排序

题目链接:http://poj.org/problem?id=1094题目大意:这个题目的难点就在于题目意思的理解。有n个大写字母,并且告诉这n个大写字母的大小关系,要你对这n个大写字母进行排序。解题思路:但是,这个题目并不是等所有的输入结束之后判断,而是一边输入一边进行判断。每次输入一组字母的关系之后,我们就需要更新原来的图。如果原来的

2013-08-09 14:43:57 672

原创 Poj 3687 Labeling Balls——拓扑排序

题目链接:http://poj.org/problem?id=3687 题目大意:现在有n个不同重量的球,球的重量是从1--n。需要给这个n个球从1--n进行编号。要求就是编号为a的球的质量小于编号为b球的质量。a和b有m组。如果结果不止一种,使编号小的球对应的质量尽可能小。最后输出1--n号球对应的质量。 解题思路:拓扑排序。建图的时候建逆向图

2013-08-09 14:32:21 598

原创 HDU 1285 确定比赛名次——拓扑排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 解题过程:第1道拓扑排序题,值得纪念一下。这个题目错了很多次。开始用的是深搜,给每个节点一个权值,叶子节点的权值是1,父亲节点的权值是孩子节点的最大值+1。在遍历完整个图之后,按照权值从大到小进行排序,就能得到一个拓扑排序。但是这个排序很难满足题目的条件,就是ID

2013-08-09 10:27:05 626

原创 UVa 10026 Shoemaker's Problem

题目大意:一个鞋匠现在有N项任务去做,每项任务都有完成所需要的时间以及拖延时间每天的罚款。如果第i项任务拖延到第j天才开始做,那么罚款就应该是j乘以任务i的罚款。这个题目的解题思路是贪心。考虑两个任务的时候,任务a和任务b如果任务a先做,那么罚款为:a.t*b.c如果任务b先做,那么罚款为:a.c*b.t我们只需要比较这个两个乘机的大小就能判断a任务和b任务的先后顺序。

2013-08-04 18:55:24 629

原创 HDU 4508 湫湫系列故事——减肥记I

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4508解题思路:赤裸裸的完全背包。虽然题目没有说食物是不是能吃多次,但是我们从第2个样例就能看出来这是个完全背包问题。源代码:#include#include#include#include#include#include#includeusin

2013-08-03 21:19:44 568

原创 UVa 10706 - Number Sequence

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1647 题目大意:定义了一种字符串s[k],表示数字1到数字k连接在一起,比如s[3]="123"现在将字符串s[k]连接在一起,这样就能构成一个更长更复杂的字符串:1121

2013-08-03 20:28:26 576

原创 HDU 4632——Palindrome subsequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 题目大意:给出一个字符串,找出其中回文串的个数。例子:aaa回文串有:a,a,a,aa,aa,aa,aaa一共有7个。虽然有一些是相同的,但是其中有些字符来自原来字符串不同的位置,所以算2种。 解题思路:动态规划。转移方程:dp[i][j]=(

2013-08-02 11:46:35 611

原创 HDU 4628——Pieces

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 题目大意:给出一个字符串,每次你可以擦除一个回文子串,问至少需要多少步可以将该字符串全部擦除。 解题思路:由于字符串的长度最多是16,所以可以采用状态压缩来解这个题目。dp[i][j]:表示第i步时,状态j是否出现。 源代码:#include#in

2013-08-02 11:36:01 653

原创 UVA——Children's Game

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27320#problem/A 题目大意:给出n个数字,让这些数字拼接在最后一起,使最后的得到的数字最大,输出这个最大数字。 解题思路:对字符串的的大小下个定义,然后进行排序,最后按照排序之后输出就好了。字符串大小的定义:bool cmp(str

2013-08-02 11:22:16 615

原创 ZOJ 2422——贪心 田忌赛马

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2422 题目大意:意思就是和古时候田忌赛马是一样的,赢一场得200分,输一场减200分,平一场不得分,求取最后能获得的最大分数。 解题思路:2300多年前,田忌总结其赛马经验的时候就说过,以上等马御中等,以中等马御下等马,以下等马御上等马

2013-07-29 16:18:02 925

原创 HDU 1203——简单的背包问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203解题思路:首先想到的就是01背包,只是状态转移方程不一样而已。dp[j]=max(dp[j],1-(1-dp[j-c[i]])*(1-p[i]));dp[j]:容量为j的背包能得到offer的最大概率。如果将第i个加进来的话,那么概率应该转成 1-(1-dp[j

2013-07-25 08:38:46 622

原创 HDU 2546——饭卡,背包问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546中文题目,不解释。解题思路:思路1:因为题目给的数据是比较小的,所以可以想一些比较暴力的方法。初始的时候,剩余的钱是 m。经过第 1道菜之后,剩余的钱可能是m也可能是 m-c[1]。经过第2道菜之后,剩余的钱可能是m,m-c[1],m-c[2],

2013-07-24 20:03:00 663

原创 HDU 2602——最简单的背包问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602题目大意:背包容量为V,背包大小为N,每根骨头都有自己的价值和体积,求取能获得的最大容量。解题思路:最简单的背包问题。状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-bone[i].w]+bone[i].v);d

2013-07-23 21:17:08 711

原创 poj4045——树形DP

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28138题目大意:有n个小区,有n-1条边将这n个小区连接起来。( 3现在要选择一个小区建设一个电站,小区到电站的电缆是有损耗的。公式为:I*I*R*Di。Di表示所有小区到该电站的距离之和,求取最小的损耗。解题思路:

2013-07-22 20:22:37 1144

原创 poj1463——树形DP

题目链接:http://poj.org/problem?id=1463题目大意:给定一棵树,现在让你在节点处布置哨兵,每个哨兵可以监管与之连接的边。求监管所有的边最少需要多少哨兵。解题思路:比较典型的树形DP。有点类似之前写过的请人聚会,但是上司和下属不能同时请,最多能请多少人的那个题目。这个题目的状态转移方程是比较好写的。dp[i][1]+

2013-07-22 14:17:05 1501

原创 HDU 2196 Computer

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题目大意:给定一棵树,求树上所有点到其他点的距离中的最大值。解题思路:思路1:比较典型的树形DPdp[i][0] :以i节点为根节点的子树中,与i距离的最大值dp[i][1]:以i节点为根节点的子树中,与i距离的次大值dis[i]:    不

2013-07-22 11:55:33 1114

原创 c语言、c++常用函数

取整函数:double floor(double x);double ceil(double x); 使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:     floor(2.5) == 2     floor(-2.5) == -3使用ceil函数。ceil(x)返回的是大于x的最小整数。如:     ceil(2.5) == 3

2013-07-21 18:16:33 778

Eclipse自动提示

Eclipse配置文件,可以提示自动换行,这样能提高开发的效率。

2014-03-25

vs2010配置文件

vs2010配置文件,win7操作系统,32位

2014-01-10

codeblocks配置文件

codeblocks配置文件,可以修改codeblocks的背景以及语法高亮,这样看起来更加舒服。 使用方法:在c盘下找到原来codeblocks的配置文件default.conf(使用搜索比较方便),在关闭codeblocks的情况下用该文件覆盖原来的文件即可。

2013-12-19

空空如也

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

TA关注的人

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