![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 71
Hilda_Chen
这个作者很懒,什么都没留下…
展开
-
Servicing Stations
题目的大概是有n个小站,它们彼此之间一共有m条路,要在这样小站中选出一些建服务站。使得与服务站相连的小站也可以得到服务。问最少可建几个服务站。我的算法是先选出连接最多的那个小站,在这个小站上设服务站,与之相连的就不用设服务站了。去除这个小站以及与它相连的小站。现找剩下最多。以此类推,但是这发现这种算法,有一种情况是不对的,就是剩下中有一个只与与最多小站相连的小站相连。如果有人可以帮忙改进,感谢不尽。// Servicing Stations.cpp : Defines the entry point for原创 2010-10-27 10:55:00 · 592 阅读 · 0 评论 -
引入虚函数
<br /><br />C++中实现多态通过函数重载(静态多态)和虚函数(动态多态)两种方式实现,通过将基类中函数定义为虚函数并在派生类中重新定义,从而实现成员函数的动态重载,另外,很多情况下基类不需要生成具体对象,这时通过将基类中成员函数定义为纯虚函数即可实现。具体方法如下:<br />virtual return_type member_function(parameters list)=0;<br />此时含此函数的积累称为抽象类,其派生类中必须对该函数进行重新定义。多态的关键之处就是一切用指向基类的转载 2011-03-14 16:13:00 · 742 阅读 · 0 评论 -
拷贝构造函数
<br /><br /> 为了说明复制构造函数作用,我先说说我们在编程时会遇到的一些问题。对于C++中的函数,我们应该很熟悉了,因为平常经常使用;对于类的对象,我们也很熟悉,因为我们也经常写各种各样的类,使用各种各样的对象;对于指针的操作,我们也不陌生吧?嗯,如果你还不了解上面三个概念的话,我想这篇文章不太适合你,不过看看也无碍^_^。我们经常使用函数,传递过各种各样的参数给函数,不过把对象(注意是对象,而不是对象的指针或对象的引用)当作参数传给函数的情况我们应该比较少遇见吧,而且这个对象的构造转载 2011-03-14 14:13:00 · 538 阅读 · 0 评论 -
类的继承
<br />一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的一、引言<br />在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下来要讨论的继承就完全可以实现这种操作。二、与继承有关的基本概念<br />继承是一个进程,通转载 2011-03-14 15:51:00 · 834 阅读 · 0 评论 -
友元
<br /><br />友元函数和友元类<br /><br /><br /> 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函转载 2011-03-14 15:30:00 · 589 阅读 · 0 评论 -
const 的用法
<br /><br />1. const常量,如const int max = 100; <br />优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。<br />2. const 修饰类的数据成员。 const数据成员只在某个对象生存期内是常转载 2011-03-14 15:12:00 · 524 阅读 · 0 评论 -
何时生成默认构造函数
假期间闲来无事,就下载了某大师的VC++视频资料。在讲到C++时,说是如果程序员没有自己定义默认构造函数,那么编译器会自动为我们产生一个默认的构造函数。 本来这个错误的认识很多程序员都有,不足为奇。但有这么多年编程经验的高手也有这样的错误认识就不禁让我哑然了。 其实编程语言和我们所用的任何软件没有区别,例如Photoshop、AutoCAD之类。其唯一不同的是我们用的编程语言是基于编译器的,而应用软件是基于我们的编程语言的。 既然我们所用的软件是基于编译器的,那么理解编译器在背后转载 2011-03-14 10:32:00 · 1120 阅读 · 0 评论 -
typedef用法(c++)转发
<br />[C++语法] 关键字typedef用法(转)<br />C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。<br />typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如:<br /> <br />typedef unsigned int UINT;<br />int main (int argc, char *argv[])<br />{<原创 2011-03-11 11:25:00 · 684 阅读 · 0 评论 -
summation of four primes
<br />// Summation of Four Primes.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <vector>#include <math.h>using namespace std;bool IsPrime(int x){ int y=(int)sqrt(x*1.0); for(int原创 2011-03-10 18:42:00 · 767 阅读 · 0 评论 -
Counting-ACM
<br />解题思路:因为Gustavo只会1,2,3,4.但是她总是将4看成是1.所以她实际在做加法是只加了1,2,3三个数字。一个数n最多可以拆成全部由1组成的数,也就是说相加的数最多有n.这样设给出的数(也就是要相加得到的数字)为n, 一共有几个m个数字相加得到n.且m>=1且m<=n.设这m个数字当中有x个1,y个2,z个3.列出方程:x+2*y+3*z=n,x+y+z=m.因为x,y,z都大于等于0.得出z=(n-m-y)/2,x=(3*m-n-y),y<=n-m,y<=3*m-n.这样遍历y的所原创 2011-03-09 17:06:00 · 894 阅读 · 0 评论 -
A Multiplication Game
<br />这道题目用的是博奕算法。<br />// A Multiplication Game.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>using namespace std;bool Multiplication(long n){ if(n>1&&n<=9)return true; else if(n>9&&n<=18)r原创 2011-03-09 10:59:00 · 939 阅读 · 0 评论 -
File Fragmentation-ACM
<br />// File Fragmentation.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;void getBigSmallSize(vector<string> v,int *bigsize,int *smallsize){ *bigsize=v[0].length(); *smallsize=v[0].length();原创 2011-03-08 10:00:00 · 912 阅读 · 0 评论 -
How big is it?-ACM
<br />这道题的算法是将大小不同的圆环交叉放置,最大与最小的放在一起,也就是说体积差异最大放在一起。<br />// How Big Is It.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ double CalLength(double r1,doubl原创 2010-11-22 17:18:00 · 757 阅读 · 0 评论 -
Birthday Cake
// Birthday Cake.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int N=0; while(cin>>N) { if(N==0)break; int A,B; int upTwo=0; int downTwo=原创 2010-11-22 09:59:00 · 891 阅读 · 0 评论 -
The Knights of the Round Table
// The Knights of the Round Table.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ double a, b,c; while(cin>>a>>b>>c) { if(a==EOF)break; double A=原创 2010-11-04 16:37:00 · 681 阅读 · 0 评论 -
Rope Crisis in Ropeland
// Rope Crisis in Ropeland.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;const double PI=3.14159265;int _tmain(int argc, _TCHAR* argv[]){ double SolveToL(double x1,double y1,double x2,doubl原创 2010-11-04 16:02:00 · 607 阅读 · 0 评论 -
Dog and Gopher
// Dog and Gopher.cpp : Defines the entry point for the console application.//#include "stdafx.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ bool JudgeEscape(double **H,double gx,double gy,double dx,double dy,int *v,int n); int原创 2010-11-04 11:35:00 · 649 阅读 · 0 评论 -
Bicoloring
这个是我在一个人的博客上看到的算法,用的是图和深度遍历算法。我自己照他的想法写了程序,发现是可以的。// Bicoloring.cpp : Defines the entry point for the console application.//#include "stdafx.h"const int MAX=200;using namespace std;int graph[MAX][MAX];int colored[MAX];bool visited[MAX];int原创 2010-10-29 14:22:00 · 731 阅读 · 0 评论 -
10044-Erdos number Time limit exceeded
以下是我的代码,但是在通过uva测试是time limit exceeded, 不知道是什么原因,而且我自己测试了几个数据都是对的。#include#include#include#include#include#includeusing namespace std;string Erdos="Erdos, P.";string Scenario="Scenario ";原创 2013-05-03 15:59:23 · 1074 阅读 · 0 评论