sizeof()功能:计算数据空间的字节数
1.与strlen()比较
strlen()计算字符数组的字符数,以"\0"为结束判断。
而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示
2.指针与静态数组的sizeof操作
指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。
注意:int *p; sizeof(p)=4;
但sizeof(*p)相当于sizeof(int);
对于静态数组,sizeof可直接计算数组大小;
例:int a[10];char b[]="hello";
sizeof(a)等于10;
sizeof(b)等于7;
注意:数组做型参时,数组名称当作指针使用!!
void fun(char p[])
{sizeof(p)等于4}
经典问题:
double* (*a)[3][6];
cout<<sizeof(a)<<endl; // 4
cout<<sizeof(*a)<<endl; // 72
cout<<sizeof(**a)<<endl; // 24
cout<<sizeof(***a)<<endl; // 4
cout<<sizeof(****a)<<endl; // 8
a是一个很奇怪的定义,他表示一个指向double*[3][6]类型数组的指针。既然是指针,所以sizeof(a)就是4。
既然a是执行double*[3][6]类型的指针,*a就表示一个double*[3][6]的多维数组类型,因此sizeof(*a)
=3*6*sizeof(double*)=72。同样的,**a表示一个double*[6]类型的数组,所以sizeof(**a)=6*sizeof (double*)=24。***a就表示其中的一个元素,也就是double*了,所以sizeof(***a)=4。至于****a,就是一个double了,所以sizeof(****a)=sizeof(double)=8。
3.格式的写法
sizeof操作符,对变量或对象可以不加括号,但若是类型,须加括号
4.使用sizeof时string的注意事项
string s="hello";
sizeof(s)等于string类的大小,sizeof(s.c_str())得到的是与字符串长度。
5.union 与struct的空间计算
总体上遵循两个原则:
(1)整体空间是 占用空间最大的成员(的类型)所占字节数的整倍数
(2)数据对齐原则----内存按结构成员的 先后顺序排列,当排到该成员变量时,其前面已摆放的空间大小必须是该成员类型大小的整倍数,如果不够则补齐,以此向后类推。。。。。
注意:数组按照单个变量一个一个的摆放,而不是看成整体。如果成员中有自定义的类、结构体,也要注意数组问题。
例:[引用其他帖子的内容]
因为对齐问题使结构体的sizeof变得比较复杂,看下面的例子:(默认对齐方式下)
struct s1
{
char a;
double b;
int c;
char d;
};
struct s2
{
char a;
char b;
int c;
double d;
};
cout<<sizeof(s1)<<endl; // 24
cout<<sizeof(s2)<<endl; // 16
同样是两个char类型,一个int类型,一个double类型,但是因为对界问题,导致他们的大小不同。计算结构体大小可以采用元素摆放法,我举例子说明一下:首先,CPU判断结构体的对界,根据上一节的结论,s1和s2的对界都取最大的元素类型,也就是double类型的对界8。然后开始摆放每个元素。
对于s1,首先把a放到8的对界,假定是0,此时下一个空闲的地址是1,但是下一个元素d是double类型,要放到8的对界上,离1最接近的地址是8了,所以d被放在了8,此时下一个空闲地址变成了16,下一个元素c的对界是4,16可以满足,所以c放在了16,此时下一个空闲地址变成了20,下一个元素d需要对界1,也正好落在对界上,所以d放在了20,结构体在地址21处结束。由于s1的大小需要是8的倍数,所以21-23的空间被保留,s1的大小变成了24。
对于s2,首先把a放到8的对界,假定是0,此时下一个空闲地址是1,下一个元素的对界也是1,所以b摆放在1,下一个空闲地址变成了2;下一个元素c的对界是4,所以取离2最近的地址4摆放c,下一个空闲地址变成了8,下一个元素d的对界是8,所以d摆放在8,所有元素摆放完毕,结构体在15处结束,占用总空间为16,正好是8的倍数。
这里有个陷阱,对于结构体中的结构体成员,不要认为它的对齐方式就是他的大小,看下面的例子:
struct s1
{
char a[8];
};
struct s2
{
double d;
};
struct s3
{
s1 s;
char a;
};
struct s4
{
s2 s;
char a;
};
cout<<sizeof(s1)<<endl; // 8
cout<<sizeof(s2)<<endl; // 8
cout<<sizeof(s3)<<endl; // 9
cout<<sizeof(s4)<<endl; // 16;
s1和s2大小虽然都是8,但是s1的对齐方式是1,s2是8(double),所以在s3和s4中才有这样的差异。
所以,在自己定义结构体的时候,如果空间紧张的话,最好考虑对齐因素来排列结构体里的元素。
快找工作了,从今天开始开始复习C++等知识了。现在遇到了几个奇怪的题目:
1、
class CLS
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
public:
int m_i;
CLS( int i ) //: m_i(i) {}
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
m_i = i;
}
CLS()
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
CLS(0);
}
};
int main()
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
CLS obj;
cout << obj.m_i << endl;
}
问输出是多少?
调试之后,发现在
CLS()
{
CLS(0);
}
中的this指针不同,所以这里可能和c#或者Java不同,当调用CLS(0)的时候,它会重新分配一块空间,并且初始化新对象的m_i=0.
后来在网上搜了一下,找打了这篇文章:
http://blog.csdn.net/cnheying/archive/2007/05/16/1611698.aspx 和
http://www.cnblogs.com/chio/archive/2007/10/20/931043.html。不知道大家对这道题有什么想法,欢迎讨论!
2、
float a = 1;
cout << (int)a << endl;
cout << (int&)a << endl;
//cout << *(int*)&a << endl;
cout << boolalpha << ((int)a == (int&)a) << endl;
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
float b = 0.0f;
cout << (int)b << endl;
cout << (int&)b << endl;
cout << boolalpha << ((int)b == (int&)b) << endl;
cout << endl;
本来不存在我注释的那一行,考虑(int&)a的时候,发现输出跟想想的不一样,后来发现和*(int*)&a的值是相同的。所以我猜测(int&)a可能首先取a的地址,然后转化成(int*),再去a地址里面的内容,这时是按照int读取的。
3、
int x = 1;
int *p = &x;
int y = 4;
cout << (++(*p) < y ? (*p)++: y) << endl;
cout << x << endl;
关于三元运算符和++的比较,++的优先级比三元运算符高。我是在VS2005下调试的,通过读汇编代码,发现((*p) ++< y ? (*p)++: y);首先对x+1,然后把值回写的内存中,用原来的之比较,比较晚之后,再从内存中读取出值,进行cout<<(*p)++<<endl;的操作。输出原值后再+1。结果x最终输出3。(这样如果死扣语言,我觉得自己会死人的)。
如果以上哪里分析的不对,欢迎大家拍砖!!
好长时间没有做ACM的题,今天做了2道,都没有做出来,参考了别人的思路。自己太不专心,如果一个人能每天花一些时间在一件事情上,我想他一定会干好这件事情。我想成为那种人,自己每天都做点题。持之以恒!
鞭策自己!
这两天学习windows编程,对里面的类型不熟悉,这是从网上找的一份。
标识符 实际类型 意义
CHAR char 8位Windows(ANSI)字符。
CCHAR char 8位Windows(ANSI)字符。
PSZ char* 一个以"NULL"结束的Windows字符串的指针
PCHAR CHAR* 一个CHAR型指针
PSTR CHAR* 一个以"NULL"结尾的8位Windows(ANSI)字符串指针
LPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
NPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
PCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
LPCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
WCHAR wchar_t 16位Unicode字符
PWCH WCHAR* 一个WCHAR型指针
PWCHAR WCHAR* 一个WCHAR型指针
PWSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
LPWSTR WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串指针
NWPSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
PCWCH CONST WCHAR* 一个WCHAR型常量指针
LPCWCH CONST WCHAR FAR* 一个WCHAR型常量指针
PCWSTR CONST WCHAR* 一个以"NULL"结束的16位Unicode字符串常量指针
LPCWSTR CONST WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串常量指针
TCHAR WCHAR(或char) 兼容型字符(Unicode中为WCHAR型,Windows中为CHAR型)
PTCHAR WCHAR*(或char) 一个TCHAR型指针
PTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PCTSTR PCWSTR(或PCSTR) Unicode中为PCWSTR型,Windows中为PCSTR型
LPCTSTR LPCWSTR(或LPCSTR) Unicode中为LPCWSTR型,Windows中为LPCSTR型
UCHAR unsigned char 无符号字符型
PUCHAR UCHAR* 一个UCHAR型指针
BSTR OLECHAR* 32位字符指针(不推荐使用)
OLECHAR wchar_t Unicode字符类型(用于对象链接与嵌入的数据类型,如嵌入Word文档)
LPOLESTR OLECHAR* 一个OLECHAR型指针
LPCOLESTR const OLECHAR* 指向OLECHAR类型的字符串常量指针
---------------------------------------------------
数值类:
---------------------------------------------------
标识符 实际类型 意义
BYTE unsigned char 8位无符号整数
PBYTE BYTE near* 一个BYTE型指针
LPBYTE BYTE far* 一个BYTE型指针
TBYTE WCHAR(或unsigned char) Unicode中为WCHAR型,Windows中为unsigned char型
PTBYTE WCHAR*(或unsigned char*) 一个TBYTE型指针
BOOL int 布尔变量,其值为(TRUE或FALSE)
PBOOL BOOL near* 一个BOOL型指针
LPBOOL BOOL far* 一个BOOL型指针
BOOLEAN BYTE 布尔变量,其值为(TRUE或FALSE)
PBOOLEAN BOOLEAN* 一个BOOLEAN型指针
SHORT short 16位短整数(有符号)
PSHORT SHORT* 一个SHORT型指针
USHORT unsigned short 无符号短整型
PUSHORT USHORT* 一个USHORT型指针
INT int 32位符号整数
INT32 32位符号整数
INT64 64位符号整数
INT_PTR Signed integral type for pointer precision.Use when casting a pointer to an integer to perform pointer arithmetic.
PINT INT near* 一个INT型指针
LPINT INT far* 一个INT型指针
UINT unsigned int 无符号的整型
UINT32 无符号的INT32型
UINT64 无符号的INT64型
UINT_PTR 无符号的INT_PTR型
PUINT UINT* 一个UINT型指针
LONG long 32位符号整数
LONG32 32位符号整数
LONG64 64位符号整数
LONGLONG __int64(或double) 64位符号整数
LONG_PTR Signed long type for pointer precision.Use when casting a pointer to a long to perform pointer arithmetic.
PLONG LONG near* 一个LONG型指针
LPLONG LONG far* 一个LONG型指针
PLONGLONG LONGLONG* 一个LONGLONG型指针
ULONG unsigned long 无符号的LONG型
ULONG32 无符号的LONG32型
ULONG64 无符号的LONG64型
ULONGLONG unsigned __int64(或double) 64位无符号整型
ULONG_PTR 无符号的LONG_PTR型
PULONG ULONG* 一个ULONG型指针
PULONGLONG ULONGLONG* 一个ULONGLONG型指针
WORD unsigned short 16位无符号整型
PWORD WORD near* 一个WORD型指针
LPWORD WORD far* 一个WORD型指针
DWORD unsigned long 32位无符号整数
DWORD32 32位无符号整型
DWORD64 64位无符号整型
DWORD_PTR Unsigned long type for pointer precision.Use when casting a pointer to a long type to perform pointer arithmetic.(Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.
PDWORD DWORD near* 一个DWORD型指针
LPDWORD DWORD far* 一个DWORD型指针
FLOAT float 浮点变量
PFLOAT FLOAT near* 一个FLOAT型指针
---------------------------------------------------
句柄类:
---------------------------------------------------
标识符 实际类型 意义
HANDLE void* 对象句柄(32位无符号整数)
PHANDLE HANDLE NEAR* 一个HANDLE型指针
SPHANDLE HANDLE NEAR* 一个HANDLE型指针
LPHANDLE HANDLE FAR* 一个HANDLE型指针
GLOBALHANDLE HANDLE 一个全局句柄
HDC HANDLE 设备描述表(DC)句柄
HBITMAP HANDLE 位图句柄
HBRUSH HANDLE 画刷句柄
HICON HANDLE 图标句柄
HCURSOR HICON 光标句柄
HPALETTE HANDLE 调色板句柄
HPEN HANDLE 画笔句柄
HCONV 动态数据交换(DDE)会话句柄
HACCEL HANDLE 加速键表句柄
HCONVLIST DDE会话列表句柄
HDDEDATA DDE数据句柄
HDESK HANDLE 桌面句柄
HDLG 对话框句柄
HDROP 一个internal drop structure句柄。
HDWP 延期窗口位置结构句柄
HENHMETAFILE HANDLE 增强图元文件句柄
HFILE int或short 文件句柄,用于函数OpenFile,不是CreateFile
HFONT HANDLE 字体句柄
HGDIOBJ HANDLE(void NEAR*) GDI对象句柄
HGLOBAL HANDLE 全局内存块句柄
HHOOK HANDLE 钩子句柄
HIMAGELIST 映像列表句柄
HIMC 输入描述表句柄
HINSTANCE HANDLE 实例句柄(32位无符号整数)
HKEY 登记关键字句柄
HKL HANDLE Input locale identifier.
今天调试了一个程序,花了2个小时,先晕一下!主要的错误是内存堆的空间被删除了大于1次,出现了一个对话框,有这个信息:line:47.大意就是内存堆出错。以后要记住这个错误!!!
从今天开始学习windows编程,这完全是为了应对这次找工作。
1、首先理解windows程序运行的一些基本知识。网址:
http://book.csdn.net/bookfiles/29/index.html,先理解这里面的东西
2、学习windows编程书,理解其中的每一个例子程序。
3、了解操作系统。
妈的,今天当了一回白痴!做1125题的时候,竟然第一时间想着用广度优先搜索,都没有仔细分析题就打算开始写代码!其实就是数据结构里面学习一个算法中就行了。哎~~~~,没想到自己这么白痴,以后怎么进步,写这篇blog就是为了记住这次的教训!以后要分析,分析,再分析!!!
今天上网,输入
www.google.cn,结果网页跳转到一个类似与百度的页面,但是网址却写的是
www.yahoo.com.cn,从页面上看,绝对不是百度的网页,但是奇怪的是可以进行搜索。ping了之后发现三个网站都来之于同一个IP地址:
219.235.3.16。这肯定是中了病毒或者木马之类的东西了,结果在电脑里面找了半天,查找到了一个名为host的文件
该文件在system32/drives/etc目录下。打开host之后,里面的内容是:
127.0.0.1 localhost
219.235.3.16 search.114.vnet.cn
219.235.3.16 keyword.vnet.cn
219.235.3.16 auto.search.msn.com
219.235.3.16 search.msn.com
219.235.3.16 cnweb.search.live.com
219.235.3.16 www.360safe.com
219.235.3.16 www.k369.com
219.235.3.16 www.5566.net
219.235.3.16 360safe.com
202.165.102.243 update.360safe.com
219.235.3.16 dl.360safe.com
219.235.3.16 down.360safe.com
219.235.3.16 bbs.360safe.com
219.235.3.16 kaba.360safe.com
219.235.3.16 baike.360safe.com
219.235.3.16 www.360.cn
219.235.3.16 360.cn
219.235.3.16 wopti.360.cn
202.165.102.243 update.360.cn
219.235.3.16 dl.360.cn
219.235.3.16 down.360.cn
219.235.3.16 bbs.360.cn
219.235.3.16 kaba.360.cn
219.235.3.16 baike.360.cn
219.235.3.16 360.qihoo.com
219.235.3.16 360safe.qihoo.com
219.235.3.16 forum.ikaka.com
219.235.3.16 www.ikaka.com
202.165.102.243 update.ikaka.com
219.235.3.16 forum.jiangmin.com
202.165.102.243 update.jiangmin.com
219.235.3.16 tieba.baidu.com
219.235.3.16 post.baidu.com
219.235.3.16 zhidao.baidu.com
219.235.3.16 www.baidu.com
202.165.102.243 update.rising.com.cn
219.235.3.16 online.rising.com.cn
202.165.102.243 center.rising.com.cn
219.235.3.16 up.duba.net
219.235.3.16 vi.duba.net
219.235.3.16 shadu.baidu.com
219.235.3.16 du.baidu.com
219.235.3.16 security.symantec.com
219.235.3.16 shadu.duba.net
219.235.3.16 bbs.duba.net
219.235.3.16 www.duba.net
219.235.3.16 online.jiangmin.com
219.235.3.16 cn.mcafee.com
219.235.3.16 www.ahn.com.cn
219.235.3.16 www.kaspersky.com.cn
219.235.3.16 www.pcav.cn
219.235.3.16 www.luosoft.com
219.235.3.16 www.im286.com
219.235.3.16 an.baidu.com
219.235.3.16 ma.baidu.com
219.235.3.16 bbs.htmlman.net
202.165.102.243 download.rising.com.cn
202.165.102.243 rsup08.rising.com.cn
219.235.3.16 10000.286er.com
219.235.3.16 im286.net
219.235.3.16 ju.qihoo.com
219.235.3.16 bbs.chinaz.com
219.235.3.16 www.qihoo.com
202.165.102.243 dnl-cn1.kaspersky-labs.com
202.165.102.243 dnl-cn2.kaspersky-labs.com
202.165.102.243 dnl-cn3.kaspersky-labs.com
202.165.102.243 dnl-cn4.kaspersky-labs.com
202.165.102.243 dnl-cn5.kaspersky-labs.com
202.165.102.243 dnl-cn6.kaspersky-labs.com
202.165.102.243 dnl-cn7.kaspersky-labs.com
202.165.102.243 dnl-cn8.kaspersky-labs.com
202.165.102.243 dnl-cn9.kaspersky-labs.com
202.165.102.243 dnl-cn10.kaspersky-labs.com
202.165.102.243 dnl-cn11.kaspersky-labs.com
202.165.102.243 dnl-cn12.kaspersky-labs.com
202.165.102.243 dnl-cn13.kaspersky-labs.com
202.165.102.243 dnl-cn14.kaspersky-labs.com
202.165.102.243 dnl-cn15.kaspersky-labs.com
202.165.102.243 dnl-eu1.kaspersky-labs.com
202.165.102.243 dnl-eu2.kaspersky-labs.com
202.165.102.243 dnl-eu3.kaspersky-labs.com
202.165.102.243 dnl-eu4.kaspersky-labs.com
202.165.102.243 dnl-eu5.kaspersky-labs.com
202.165.102.243 dnl-eu6.kaspersky-labs.com
202.165.102.243 dnl-eu7.kaspersky-labs.com
202.165.102.243 dnl-eu8.kaspersky-labs.com
202.165.102.243 dnl-eu9.kaspersky-labs.com
202.165.102.243 dnl-eu10.kaspersky-labs.com
202.165.102.243 dnl-eu11.kaspersky-labs.com
202.165.102.243 dnl-eu12.kaspersky-labs.com
202.165.102.243 dnl-eu13.kaspersky-labs.com
202.165.102.243 dnl-eu14.kaspersky-labs.com
202.165.102.243 dnl-eu15.kaspersky-labs.com
202.165.102.243 dnl-us1.kaspersky-labs.com
202.165.102.243 dnl-us2.kaspersky-labs.com
202.165.102.243 dnl-us3.kaspersky-labs.com
202.165.102.243 dnl-us4.kaspersky-labs.com
202.165.102.243 dnl-us5.kaspersky-labs.com
202.165.102.243 dnl-us6.kaspersky-labs.com
202.165.102.243 dnl-us7.kaspersky-labs.com
202.165.102.243 dnl-us8.kaspersky-labs.com
202.165.102.243 dnl-us9.kaspersky-labs.com
202.165.102.243 dnl-us10.kaspersky-labs.com
202.165.102.243 dnl-us11.kaspersky-labs.com
202.165.102.243 dnl-us12.kaspersky-labs.com
202.165.102.243 dnl-us13.kaspersky-labs.com
202.165.102.243 dnl-us14.kaspersky-labs.com
202.165.102.243 dnl-us15.kaspersky-labs.com
202.165.102.243 dnl-ru1.kaspersky-labs.com
202.165.102.243 dnl-ru2.kaspersky-labs.com
202.165.102.243 dnl-ru3.kaspersky-labs.com
202.165.102.243 dnl-ru4.kaspersky-labs.com
202.165.102.243 dnl-ru5.kaspersky-labs.com
202.165.102.243 dnl-ru6.kaspersky-labs.com
202.165.102.243 dnl-ru7.kaspersky-labs.com
202.165.102.243 dnl-ru8.kaspersky-labs.com
202.165.102.243 dnl-ru9.kaspersky-labs.com
202.165.102.243 dnl-ru10.kaspersky-labs.com
202.165.102.243 dnl-ru11.kaspersky-labs.com
202.165.102.243 dnl-ru12.kaspersky-labs.com
202.165.102.243 dnl-ru13.kaspersky-labs.com
202.165.102.243 dnl-ru14.kaspersky-labs.com
202.165.102.243 dnl-ru15.kaspersky-labs.com
202.165.102.243 dnl-jp1.kaspersky-labs.com
202.165.102.243 dnl-jp2.kaspersky-labs.com
202.165.102.243 dnl-jp3.kaspersky-labs.com
202.165.102.243 dnl-jp4.kaspersky-labs.com
202.165.102.243 dnl-jp5.kaspersky-labs.com
202.165.102.243 dnl-jp6.kaspersky-labs.com
202.165.102.243 dnl-jp7.kaspersky-labs.com
202.165.102.243 dnl-jp8.kaspersky-labs.com
202.165.102.243 dnl-jp9.kaspersky-labs.com
202.165.102.243 dnl-jp10.kaspersky-labs.com
202.165.102.243 dnl-jp11.kaspersky-labs.com
202.165.102.243 dnl-jp12.kaspersky-labs.com
202.165.102.243 dnl-jp13.kaspersky-labs.com
202.165.102.243 dnl-jp14.kaspersky-labs.com
202.165.102.243 dnl-jp15.kaspersky-labs.com
202.165.102.243 dnl-kr1.kaspersky-labs.com
202.165.102.243 dnl-kr2.kaspersky-labs.com
202.165.102.243 dnl-kr3.kaspersky-labs.com
202.165.102.243 dnl-kr4.kaspersky-labs.com
202.165.102.243 dnl-kr5.kaspersky-labs.com
202.165.102.243 dnl-kr6.kaspersky-labs.com
202.165.102.243 dnl-kr7.kaspersky-labs.com
202.165.102.243 dnl-kr8.kaspersky-labs.com
202.165.102.243 dnl-kr9.kaspersky-labs.com
202.165.102.243 dnl-kr10.kaspersky-labs.com
202.165.102.243 dnl-kr11.kaspersky-labs.com
202.165.102.243 dnl-kr12.kaspersky-labs.com
202.165.102.243 dnl-kr13.kaspersky-labs.com
202.165.102.243 dnl-kr14.kaspersky-labs.com
202.165.102.243 dnl-kr15.kaspersky-labs.com
202.165.102.243 dnl-cd1.kaspersky-labs.com
202.165.102.243 dnl-cd2.kaspersky-labs.com
202.165.102.243 dnl-cd3.kaspersky-labs.com
202.165.102.243 dnl-cd4.kaspersky-labs.com
202.165.102.243 dnl-cd5.kaspersky-labs.com
202.165.102.243 dnl-cd6.kaspersky-labs.com
202.165.102.243 dnl-cd7.kaspersky-labs.com
202.165.102.243 dnl-cd8.kaspersky-labs.com
202.165.102.243 dnl-cd9.kaspersky-labs.com
202.165.102.243 dnl-cd10.kaspersky-labs.com
202.165.102.243 dnl-cd11.kaspersky-labs.com
202.165.102.243 dnl-cd12.kaspersky-labs.com
202.165.102.243 dnl-cd13.kaspersky-labs.com
202.165.102.243 dnl-cd14.kaspersky-labs.com
202.165.102.243 dnl-cd15.kaspersky-labs.com
202.165.102.243 downloads1.kaspersky-labs.com
202.165.102.243 downloads2.kaspersky-labs.com
202.165.102.243 downloads3.kaspersky-labs.com
202.165.102.243 downloads4.kaspersky-labs.com
202.165.102.243 downloads5.kaspersky-labs.com
219.235.3.16 rss.360safe.com
219.235.3.16 x.360safe.com
219.235.3.16 d.360safe.com
219.235.3.16 updatem.360safe.com
219.235.3.16 softm.360safe.com
219.235.3.16 ishare.sina.com.cn
219.235.3.16 search.cn.yahoo.com
219.235.3.16 www.google.com
219.235.3.16 google.com
219.235.3.16 www.google.cn
219.235.3.16 www.yahoo.com.cn
219.235.3.16 cn.yahoo.com
219.235.3.16 search.tom.com
219.235.3.16 zhuansha.duba.net
219.235.3.16 buy.duba.net
219.235.3.16 kad.www.duba.net
219.235.3.16 cu001.www.duba.net
219.235.3.16 cu002.www.duba.net
219.235.3.16 cu003.www.duba.net
219.235.3.16 cu004.www.duba.net
219.235.3.16 cu005.www.duba.net
219.235.3.16 cu010.www.duba.net
219.235.3.16 client.download.duba.net
219.235.3.16 page.so.163.com
219.235.3.16 www.soso.com
219.235.3.16 sou.china.com
219.235.3.16 test.591jx.com
219.235.3.16 a.topxxxx.cn
219.235.3.16 picon.chinaren.com
219.235.3.16 www.5566.net
127.0.0.1 p.qqkx.com
127.0.0.1 news.netandtv.com
127.0.0.1 z.neter888.cn
127.0.0.1 b.myblank.cn
127.0.0.1 wvw.wokutu.com
127.0.0.1 unionch.qyule.com
127.0.0.1 www.qyule.com
127.0.0.1 it.itjc.cn
127.0.0.1 www.linkwww.com
127.0.0.1 vod.kaicn.com
127.0.0.1 www.tx8688.com
127.0.0.1 b.neter888.cn
127.0.0.1 promote.huanqiu.com
127.0.0.1 www.huanqiu.com
127.0.0.1 www.haokanla.com
127.0.0.1 play.unionsky.cn
127.0.0.1 www.52v.com
127.0.0.1 www.gghka.cn
127.0.0.1 icon.ajiang.net
127.0.0.1 new.ete.cn
127.0.0.1 www.stiae.cn
127.0.0.1 o.neter888.cn
127.0.0.1 comm.jinti.com
127.0.0.1 www.google-analytics.com
127.0.0.1 hz.mmstat.com
127.0.0.1 www.game175.cn
127.0.0.1 x.neter888.cn
127.0.0.1 z.neter888.cn
127.0.0.1 p.etimes888.com
127.0.0.1 hx.etimes888.com
127.0.0.1 abc.qqkx.com
127.0.0.1 dm.popdm.cn
127.0.0.1 www.yl9999.com
127.0.0.1 www.dajiadoushe.cn
127.0.0.1 down.nihao29.cn
127.0.0.1 v.onondown.com.cn
127.0.0.1 www.interoo.net
127.0.0.1 bally1.bally-bally.net
127.0.0.1 www.bao5605509.cn
127.0.0.1 down.nihao29.cn
127.0.0.1 www.mzd020.cn
127.0.0.1 jzm015.cn
127.0.0.1 down.hs7yue.cn
127.0.0.1 new.doups.cn
127.0.0.1 w.qq-uc.cn
127.0.0.1 down.nihao69.cn
127.0.0.1 www.rty456.cn
127.0.0.1 www.werqwer.cn
127.0.0.1 1.360-1.cn
127.0.0.1 user1.23-16.net
127.0.0.1 www.guccia.net
127.0.0.1 www.interoo.net
127.0.0.1 upa.netsool.net
127.0.0.1 js.users.51.la
127.0.0.1 vip2.51.la
127.0.0.1 web.51.la
127.0.0.1 qq.gong2008.com
127.0.0.1 2008tl.copyip.com
127.0.0.1 tla.laozihuolaile.cn
127.0.0.1 www.tx6868.cn
127.0.0.1 p001.tiloaiai.com
127.0.0.1 s1.tl8tl.com
127.0.0.1 s1.gong2008.com
删除了该文件之后,结果IE正常。但是我怀疑应该有exe或者dll文件存在在电脑里面,因为IE来读取这个文件,而且ping命令也是读取这个文件,但是查找半天都没有找到。希望大家有谁遇到过类似的问题,帮我解决一下。谢谢了。
不知道大家对这个原理了解吗?可以探讨一下!
一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的
,主要时间是花在思考算法上,不是花在写程序与debug上。
下面给个计划你练练:
第一阶段:
练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,
因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打
出来.
1.最短路(Floyd、Dijstra,BellmanFord)
2.最小生成树(先写个prim,kruscal要用并查集,不好写)
3.大数(高精度)加减乘除
4.二分查找. (代码可在五行以内)
5.叉乘、判线段相交、然后写个凸包.
6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)
7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.
8. 调用系统的qsort, 技巧很多,慢慢掌握.
9. 任意进制间的转换
第二阶段:
练习复杂一点,但也较常用的算法。
如:
1. 二分图匹配(匈牙利),最小路径覆盖
2. 网络流,最小费用流。
3. 线段树.
4. 并查集。
5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp
6.博弈类算法。博弈树,二进制法等。
7.最大团,最大独立集。
8.判断点在多边形内。
9. 差分约束系统.
10. 双向广度搜索、A*算法,最小耗散优先.
第三阶段:
前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法
。这就要平时多做做综合的题型了。
1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。
2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来
做:-P )
3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.
4. 一道题不要过了就算,问一下人,有更好的算法也打一下。
5. 做过的题要记好 :-)
摘要: 今天早上终于提交成功了!这道题做了有一个星期多了,老是找不到原因。今天在偶然间发现了,先将代码贴出来,还请大家指正!感谢steven和一个匿名网友的建议,谢谢你们!但是程序运行的时间还是过长,希望大家能够帮助修改。
1#include <stdio.h> ...
阅读全文