- 博客(34)
- 收藏
- 关注
原创 C++多继承构造函数执行顺序
在C++的构造函数初始化列表里,类成员的初始化顺序与其声明顺序相同,而在类的多继承中,构造函数的执行顺序便与“继承声明”顺序相同了,详见代码: #includeusing namespace std;class C{ public: C(){cout<<"C Constructor\n";} ~C(){cout<<"C Destructor\n
2012-11-29 22:14:56
2871
转载 学习c++推荐书籍
来自:http://www.cnblogs.com/cutepig/archive/2009/02/26/1399032.html (一)语言入门:《C++ Primer》最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。《The C++ Pr
2012-11-29 21:22:02
1766
转载 DP问题汇总?
转载自:点击打开链接 http://acm.hdu.edu.cn/showproblem.PHP?pid=2955 背包[bao];第一次做的时候把概率[gai lv]当做背包[bao](放大100000倍化为整数):在此范围[fan wei]内最多能抢多少钱 最脑残的是把总的概率[gai lv]以为是抢N家银行的概率[gai lv]之和… 把状态[zhuang tai
2012-11-13 18:49:13
1734
原创 hdu 1003
dp题,更不如说是决策题,WA、PE了N次,总算纠结出来了。。。题目讨论如下:对存放数据的数组从左至右遍历,有下列四种情况: 1.sum,ai>=0: 直接加入子列队伍,sum+=ai,end=i; 2.sum=0: 记下start=end=i,sum=ai; 3.sumsum,同2处理; 4.sum>0,ai 每次遍历完,比较maxsum与sum大小,记录较大者
2012-11-13 15:09:29
1289
转载 fpga 定时器
来源 程序设计 该定时器的程序设计中主要包含CRTL计数模块、SEL2选择模块和DSIP译码器模块三部分的设计。3.1计数模块 CTRL计数模块是该定时器的核心部分。RES为复位端,用来清零,采用异步复位方式;CN用于置位,高电平有效。COUT端将在定时结束时产生高电平。LOW和HIGH为四位BCD码输出端口,可用于显示。当CN有效时,CLK脉冲上升沿到来,计数加1;当C
2012-11-07 00:13:37
4572
转载 class's contract in C++
In legal terms, a contract is a binding document that describes the responsibilities and expectations of the parties entering into the contract. Interfaces between classes can be modeled in the same w
2012-10-13 06:48:53
1573
原创 GetTickCounth函数
GetTickCounth函数的使用: 作用:返回时间 头文件:windows.h C语言中输出格式lu%样例:int b[N];int main(){ int i; DWORD take=GetTickCount(); printf("%lu\n",take); for(i=0;i<N;i++) b[i]
2012-09-30 16:59:26
2456
转载 猜生日游戏(2)
点此打开链接 这里,再介绍一个猜生日游戏。 让对方用自己生日的月份乘上31,日期乘上12,再把两个乘积加起来,把得数告诉你,你就能知道他的生日了。设,对方的生日是x月y日。他的计算结果a=31x+12y,是一个不定方程。用解方程的方法虽然可以求出x和y,但是过程非常烦琐。下面介绍一个比较简单的方法:第一步,确定生日的月份x:求出a÷3的余数和a÷4的余数。如果a是奇数:
2012-09-28 11:56:30
2358
原创 暴力字符串匹配
int Index(SString S,SString T,int pos){ //返回子串T在主串S中第pos个字符之后的位置,若不存在,则函数值为0 //其中,T非空,1<=pos<=strlen(S) i=pos; j=1; while(i<=S[0]&&(j<=T[0])){ if(S[i]==T[i]){
2012-09-26 22:20:10
704
原创 表达式求值
#include#include#includeusing namespace std;//two steps solving the problem:1.transfer the infixexpression to the postfixexpression// 2.using a stack to calculate the value of the infixexperssion
2012-09-26 21:54:31
577
原创 记录 怎么引用指针变量?(指针变量引用变量)
int main(){ int a[3]={50,20,31},*p=a;/*指针变量引用变量*/ int *&b=p;//p指向a,b为p的别名 cout<<*(b++)<<endl; cout<<*(b++)<<endl; cout<<*b<<endl; return 0;}以上用法完全自己所想、实验,实验
2012-09-22 11:35:45
1124
转载 动态内存分配
本文转自 点击打开链接 引言:对于指针,正确的分配动态内存 内存的正式叫法是内存储器,以此来与外存储器区分开。物理上它安装在计算机内部,通常安装在主板上,所以称为内存。它的作用是供暂时存储处理器需要处理的数据或处理后的结果,可见内存是计算机处理器的工作空间。它是处理器运行的程序和数据必须驻留于其中的一个临时存储区域,是计算机十分重要的部件。[全文]是十分重要的
2012-09-22 09:59:07
555
原创 free
当用free逐个释放内存时需特别注意:比如当用下面方法逐个释放单链表元素时就死循环了while(head){ free(head); head=head->next;}而这样就可以避免上述情况:NODE *p=head; while(p){ head=head->next;
2012-09-21 11:56:01
450
原创 C++继承
《面向对象程序设计与C++语言》(朱战立 宋新爱 编著)--书本学习刚要记录 1.面相对象的重要特征:继承性 继承情况 解决问题: 2.继承概述 1.基类、派生类和保护成员 2.派生类 3.三种继承方式: ·公有继承:a.特点:基类的共有成员函数和保护成员函数将分别成为派生类的公有、私有成员 ·私有继承 a.特
2012-09-18 18:18:36
439
原创 2011 Asia Dalian Regional Contest Hexadecimal View
#include#include#includeusing namespace std;void hex(char *p,int n){ int counter=0,i; for(i=1;i<=n;i++){ if(*p<16)printf("0%x",*(p++)); else printf("%x",*(p++));
2012-09-15 16:37:58
663
原创 2010 Asia Chengdu Regional Contest 位运算
//2010 Asia Chengdu Regional Contest//http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1003&ojid=0&cid=3151&hide=0//简单的位运算题 #include#include#include#define MAX 0x7fffffffusing namespac
2012-09-04 18:38:02
594
转载 根据前序、中序遍历重构二叉树
本文来源 【前言】这个选题源自课上的一个习题,题目提供了二叉树的前序遍历和中序遍历,要求出整个二叉树。刚一做这道题时,还有些迷惑。但是,既然答案是确定的,就一定存在着算法,来求出这个二叉树。经过一些摸索,最终确定了求解算法。【分析】二叉树的遍历一共有四种方法,分别是前序遍历、中序遍历、后续遍历和层序遍历。各种方法各有特点,但是中序遍历的特点最好利用。中序遍历是先遍历左子树,
2012-09-01 16:39:03
946
原创 并查集 xtu-2170 ACM ICPC 2011–2012, Northeastern European Regional Contest Problem E. Eve
此题看似繁冗,其实是水题,只要并查集就可解决。 注意信息的汲取……ACM ICPC 2011–2012, Northeastern European Regional ContestSt. Petersburg – Barnaul – Tashkent – Tbilisi, November 27, 2011Problem E. EveInput file: eve.inO
2012-08-29 15:31:21
1652
原创 floyd算法解xtu_exam 1019(错解……)
为什么WA了?#include#include#include#include#define MA 0x5fffffusing namespace std;void floyd(int d[21][21],int n){ int i,j,k; for(i=0;i<n;i++){ for(j=0;j<n;j++) fo
2012-08-24 21:41:29
487
原创 xtu_exam 1018 最小生成树
说明:此次作业只为熟悉两种求最小生成树的算法:prim算法(第一次写,邻接表实现,发现写起来也比较简单) 和kruskal算法(这个算法的并查集版本写了好几遍了)要注意的是当使用表达式做角标时,一定要注意对应关系。。。code:#include#include#include#define N 1000001#define M 0x7fffffffusing nam
2012-08-24 18:28:01
516
原创 xtu_2008 搜索
写代码时要尽可能地精简,否则就可能各种错误;不熟悉的东西尽量避免使用,否则就可能各种错误……比如下面的两个,第一个AC,第二个就RE了: (差点误人误己)原来第一种写法是水过去的,因为其搜索顺序和第二个不一样,,,,, #include//当用暴力代替dfs中的for循环时为什么会爆掉?#include#include#define M 751using namespace
2012-08-21 16:20:00
508
转载 慎用fflush(stdin)
文章来源为什么fflush(stdin) 是错的首先请看以下程序: #include stdio.h>int main( void ){ int i; for (;;) { fputs("Please input an integer: ", stdout); scan
2012-08-21 14:10:14
1872
转载 int main(int argc,char* argv[])详解
该文抄自:http://www.cnblogs.com/avril/archive/2010/03/22/1691477.html argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]){ int i; for (i
2012-08-16 21:07:17
550
原创 dfs遍历图 xtu-exam1015
目前只接触过用dfs遍历邻接表建立的图,写递归的dfs时应注意两点: 1.深度优先遍历,但还要遍历相邻的点;2.判断指针空与否来判断某点是否还有相邻点。 这道题是给一张图,要求判断其是否连通。直接建图再dfs就好。其中优化就是:如果有度为0的点就标记,忽略建图和dfs过程,此时已有结论。xtu链接代码: #include#include#define N 100011
2012-08-15 21:36:17
1012
1
原创 二叉树的建立及遍历(前、中、后序) xtu-exam 1004
呵呵,忙了一下午加一晚上终于把它一次性A了! 主要遇到的问题是:1.对二叉树的遍历(前序、中序、后序)不熟悉,包括递归和非递归写法…… 2.在非递归建立二叉树过程中一直在犹豫,,,没有分类清楚(当左子树存在时就该一直左左左地建立它,当不存在左子树时,就应该弹出栈,开始考虑最新的右子树,当初
2012-08-14 23:18:39
845
原创 树的存储结构
一、双亲表示法: 树中每个结点都有唯一一个父结点(根结点无),因此可定义一个包含两个成员的结构体:其一记录结点值,另一记录父节点(值或编号……),以此可建立一棵树: #define SIZE 20type struct{ char data; int par;}node;type struct{ node tree
2012-08-11 17:04:26
754
转载 文件操作
转自:点击打开链接 文件操作C语言中没有输入输出语句,所有的输入输出功能都用ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的读写操作
2012-08-07 21:06:07
585
转载 hduoj 题目分类
杭电acm题目分类版本1asdf转载 2009-10-18 12:51 阅读147 评论0 字号: 大大 中中 小小 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典
2012-08-07 16:45:52
1037
转载 hdu oj 题目分类
基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、1170、1194、1
2012-08-07 16:42:41
1060
转载 深入了解scanf()getchar()和gets()cin等函数
深入了解scanf()/getchar()和gets()/cin等函数 问题描述一:(分析scanf()和getchar()读取字符) scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序: 程序1:
2012-08-07 14:55:13
429
原创 简单的单链表(含错)
我发现这个链表建的有问题。那个rear指针指的是第100个结点,当第十个结点为表尾(非真正表尾)而插入样例中的第11个结点时,其实是将此节点插到了第101的位置……所以输出时“表尾”数据不是真正表尾数据。样例输入:102001 M2002 F2003 M2004 F2005 M2006 F2007 M2008 F2009 M2010 F11020
2012-08-06 17:50:13
608
转载 快排函数详解
本文由楓林の寒贡献int cmp(const void *a, const void *b)返回正数就是说 cmp 传入参数第一个要放在第二个后面, 负数就是传入参数第一个要放第二个前面, 如果是 0, 那就无所谓谁前谁后..下面就把snoopy曾经写的介绍qsort的完整版贴出来好了,我想有与我一样经历的朋友也可以弄懂的:很多人问这个东西.我以前也看了好久,今天翻到以前学快排的时
2012-08-06 13:57:50
1117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人