- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 【C++学习笔记】优先级队列以及运算符重载
在编写一道算法题时用到了优先级队列,其中优先级比较函数第一次写错了,输出结果一直不对,感觉这个错误应该大家都很容易犯,总结一下前车之鉴。题目大意是有一个触发器,每个一个周期会产生一个数,触发器是通过输入“Register NUM Period”定义的,输入语句可以包含若干行定义register语句外加整数k,然后按时间先后输出触发器产生的k个整数,若同一时间产生多个整数则先输出数小的。根据
2013-09-22 13:09:09 1815
原创 poj1007 qsort快排
这道题比较简单,但通过这个题我学会了使用c++内置的qsort函数用法,收获还是很大的!首先简要介绍一下qsort函数。1、它是快速排序,所以就是不稳定的。(不稳定意思就是张三、李四成绩都是90,张三成绩在前;排序完毕后有可能变成李四的90在前,张三在后)2、需要包含头文件:cstdlib3、原型:void qsort(void *base,int nelem,int wi
2013-09-21 11:00:17 1342
原创 【C++算法设计】八数码问题
八数码问题【题意】编好为1~8的8个正方形滑块摆成3行3列(一个格子为空),如图所示每次可以移动空格相邻的滑块到空格,要计算出能移动出目标局面的最小步数,如无法达到则输出-1。【分析】我们可以把每一种局面定义为一种“状态”,而每个状态就是由9个格子的编号依次排列组成,如上图左的状态为:1,5,2,4,3,0,7,8,6,同理右的状态为:1,2,3,4,5,6,7
2013-09-17 16:06:58 4272
原创 【C++学习笔记】继承与派生基础概念
面向对象的程序设计主要有四个特点:抽象、封装、继承和多态。其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在。举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量有身长、身高、体重等,还有“吃”、“奔跑”等成员函数,现在我们想创建新类”公马“和”母马“,很明显公马母马具有所有马的特征,我们就不需要重新再写,只需要在原有类的基础上增加”性别“这一新特征,即可创
2013-09-16 13:27:39 1894 2
原创 【C++学习笔记】友元函数和友元类
最近开始重新看C++的基础知识,还真的有很多新的收获,特此总结一下,供大家学习交流。友元函数和友元类其实是打破C++封装性的一部分内容,所以不要随意乱用。我们都知道,在一个类外是只能访问该类的公有成员,不能访问保护和私有成员,但是友元是一个例外。友元函数:如果在类外有一个函数(可以属于别的类也可以什么类也不属于),在类体内用friend关键字声明后,该函数就成为了本类的友元函数,可以访问本
2013-09-14 18:41:43 839
原创 【C++学习笔记】函数重载和函数覆盖
函数重载和函数覆盖一、函数重载函数重载(overload),指相同的函数名,但参数个数或类型不同。所谓“重载”就是一物多用。比如说一个比较大小的函数,比较的数的类型可以是int,double也可以是long型,如果不用重载我们要定义三个如下函数 void compare1(int a,int b);void compare2(double a,double b);void co
2013-09-14 13:48:08 999
原创 【Java学习笔记】Hashset判断自定义对象是否重复
昨天去面试,考官问了一个关于Java的容器Hashset的问题,是说在加入自定义的对象时,如何设置对象的某一个属性为关键属性,即该属性相同则不能添加,该属性不同则可以添加。用Java编程还是太少,之前真的是没有遇到过类似问题,所以当时瞎扯一通,很遗憾也没有猜对。回来看了看网上的讲解,自己又编了个程序试了试,终于明白了一点。唉,编程这东西,不积跬步无以至千里啊!首先我编程发现,即使一模一样的两个
2013-09-13 11:24:30 11571 2
原创 POJ1321 搜索之回溯法
因为看《算法竞赛入门经典》看到了讲回溯这一章节,就拿了一个搜索题来练练手。这个题用回溯做还比较简单。主要思路是依次遍历每一个格子,首先看是不是空(#),如果是且与之前的棋子不冲突的话就放一个棋子在这里,记录该棋子所在行号和列号。之后再去寻找下一个能放棋子的位置,直到所有棋子放完可行解数量即+1;遇到没有可放的情况则返回上一层调用(这就是“回溯”)。第一次提交是LTE,分析原因错误出现在我的思路
2013-09-11 16:32:42 1646
原创 Java读取txt文件和写入txt文件
写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂!一、读入txt文件。package test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.Fi
2013-09-10 15:03:50 178515 16
原创 POJ3126 Prime Path
这个题很简单,但我WA了两次,有一个小小的地方需要注意,不要用新值覆盖掉原来的数,否则就错啦!定义一个tmp存储每次改变后的数字就行了。这段时间一直在做bfs的题目,这个题最多有40个入口,但是很明显偶数是不可能为质数的,所以砍掉偶数就少了一半数据了。#include#includeusing namespace std;int que[1000000];bool visit[10
2013-09-10 12:27:37 1188
原创 poj1426 bfs+同余数定理
题意大致是给定一个n(1~200),求出n的一个倍数k,但k的每一位都必须是0或1。Special Judge 的意思是答案不唯一,比如说n=2时,k=10对,k=100也对,只要输出一个符合要求的即可,没有说要最小。这个题有点像数学题,但还用到了bfs,还算比较综合吧。难点在于k比较大的时候如何表示,很显然一个int,long都是不行的。还有就是数很大时穷举去计算是否能整除也很浪费时间。解决
2013-09-08 10:58:38 1558
原创 poj3278 Catch That Cow bfs水题
这道题非常简单,一边看中国好声音一边做一小时AC,没啥要注意的地方,把数组开大一点就不会WA了BFS直接代码:#includeusing namespace std;int que[1000000];bool visit[100010];int main(){ int n,k; cin>>n>>k; int front=0; int rear=0; que[rear+
2013-09-06 23:39:46 934
原创 poj3083 Children of the Candy Corn
比较简单的搜索题,用到了dfs和bfs。dfs比较适合搜索有无可行解,如本题中左转优先和右转优先是利用dfs算法求解得,而bfs适合寻找最优解,如本题最短路径就是bfs。这道题有一个比较需要注意的地方就是bfs时用visit[][]记录是否访问时,一定要在加入que队列的时候就修改visit[x][y]的值,我第一次是在出队列的时候修改其值,因为想的是出队列时才是访问它的时候,但是这样就大
2013-09-01 10:39:30 930
android口语对话系统
2014-05-10
Django1.6_利用Form实现注册登录注销修改密码
2014-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人