摘要:
在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。 那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0与g++编译器的扩展。VC的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,. 阅读全文
随笔分类 - ACM coding
POJ 1002 487-3279 解题报告
2011-11-28 17:03 by 诸葛二牛, 301 阅读, 收藏,
摘要:
Source CodeProblem:1002User:Memory:5208KTime:1563MSLanguage:C++Result:AcceptedSource Code//POJ 1002//考查点:字符串转化和STL库中,Map的数据结构的使用,迭代器的使用,注意C风格的字符串和C++的字符串的区别//思路:使用alpha实现手机上字母和数字的映射,用map来记录字符串的个数,map的使用一般需要用map<string, int> 而不能使用map<char *,int>//提交情况://Compile Error 2次,选错了语言,由于GCC和G++中不能 阅读全文
const char* p, char const* p, char* const p的区别
2011-11-08 13:24 by 诸葛二牛, 647 阅读, 收藏,
摘要:
const char* p, char const* p, char* p const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 const char * p; //1. p is a pointer to const char; char * const p; //2. p is a const pointer to char char const * p; 同上因为C++里面没有const*的运算符,所 阅读全文
C字符数组和C++字符串
2011-10-24 15:17 by 诸葛二牛, 2212 阅读, 收藏,
摘要:
在C中,并没有字符串这个数据类型,而是使用字符数组来保存字符串。C字符串实际上就是一个以null('\0')字符结尾的字符数组,null字符表示字符串的结束。需要注意的是:只有以null字符结尾的字符数组才是C字符串,否则只是一般的C字符数组。C字符串定义时可以利用"="号进行初始化,但是以后不能利用"="对C字符串进行赋值。对C字符串的操作需要通过"string"文件中定义的字符串处理函数。例如://字符串的初始化char a[11] = "huanying";//字符串的赋值strcpy(a,& 阅读全文
error: expected specifier-qualifier-list before 'node'
2011-10-24 15:16 by 诸葛二牛, 514 阅读, 收藏,
摘要:
The problem is that your structs are unnamed. You need to give them names so you can refer to them within themselves, e.g.1 typedef struct treeNode{ 2 char val;3 struct treeNode *left, *right;4 } NODE; 阅读全文
求解约瑟夫问题(Joseph Problem)的数学方法 from 御剑晨风
2011-10-17 22:39 by 诸葛二牛, 701 阅读, 收藏,
摘要:
http://alexxyjiang.blog.163.com/blog/static/11713572120109210942883/约瑟夫问题(Joseph Problem):n个人(编号由0, 1, ..., n-1)围成一圈,由编号0的人从1开始报数,报到m的退出,剩下的人继续从1开始报数,直到圈内只剩余1人,求胜利者的编号。(n>0, m>0)--------------------------------求解约瑟夫问题,很容易想到的常规方法是模拟,不仅程序写起来比较烦,而且时间复杂度高达O(mn),当m,n非常大的时候,这样的时间复杂度就显得太高了。有没有一种方法,能够 阅读全文
error: variably modified 'table' at file scope
2011-10-16 00:06 by 诸葛二牛, 3167 阅读, 收藏,
摘要:
1 #define MAXN 10010 //13 const int MAXN=10010;//24 7 int ansTable[MAXN];若用2的方式,则用gcc编译会出现Error: variably modified 'users' at file scope改成1的形式,则没有报错信息。在c里静态数组(固定长度的数组,即LISTEN_NUM位置是常数)是允许的,而动态数组(譬如给数组的长度是用变量来表示的)不能写成 UserProfile users[LISTEN_NUM];形式的,只能自行分配内存。 阅读全文
动态规划求最大子序列和
2009-10-06 14:07 by 诸葛二牛, 549 阅读, 收藏,
摘要:
问题描述:有一串数字(可正可负的int,放在数组Num里),要求找到起始位置start和终止位置end,使得从start位置到end位置的所有数字之和最大,返回这个最大值max。 最简单的方法是用动态规划算法实现:设 f[x] 为以 a[x] 终止且包含 a[x] 的最大序列的和,有: f[1] = a[1]; f[x+1] = f[x] > 0 ? f[x] + a[x+1] : a[x+1]那么最大子序列的和就是 f[1] .. f[n] 中最大的一个。 算法的时间复杂度为O(n),代码实现如下:Code highlighting produced by Actipro CodeH. 阅读全文
浙公网安备 33010602011771号