基础_1 2016.4.16

本文介绍了大O记号、封底估算、memset()使用注意事项、数据类型取值范围以及输入输出的相关知识。强调Runtime Error的避免,提倡使用scanf和printf。还提到了常用库函数qsort的功能和使用示例,并分享了一位过来人在ACM-ICPC学习过程中的经验与忠告,包括避免模板依赖、深入学习、独立思考和做有意义的题目等方面。
摘要由CSDN通过智能技术生成

1、大O记号(big‐O notation)

性质: 常系数可忽略:O(f(n)) = O(c × f(n))
低次项可忽略:O(n^a + n^b) = O(n^a), a > b > 0

这里写图片描述

常数(constant function)
2 = 2010 = 2010*2010 = 20102010 = O(1)
这类算法的效率最高

这里写图片描述

对数 O(logn):lnn | lgn | log100n | log2010n

常底数无所谓
∀ 常数 a, b > 0,lna / lnb = logab = O(1)
∀ n > 0 都有 logan = logab × logbn = O(logbn),反之亦然

常数次幂无所谓
∀ 常数 c > 0,log(n^c) = c × logn = O(logn)

这类算法非常有效
复杂度无限接近于常数

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

2、封底估算

这里写图片描述
这里写图片描述

这里写图片描述

3、memset()使用注意

初始化int类型的数组
只能初始化为 -1 和 0

初始化bool类型的数组
只能初始化为 false 和true

初始化char类型的数组
可初始化为任意的ASCII码字符

4、数据类型的取值范围

int -2147483648~2147483647 (-2e+9 ~ 2e+9)

unsigned int 0~4294967295 (0 ~ 4e+9)

long long
-9223372036854775808 ~ 9223372036854775807 (-9e+18 ~ 9e+18)

unsigned long long 0 ~ 18446744073709551615 (0 ~ 1e+19)

__int64
-9223372036854775808 ~ 9223372036854775807 (-9e+18 ~ 9e+18)

unsigned __int64 0 ~ 18446744073709551615 (0 ~ 1e+19)

__int64与long long 都是在32位平台开始使用的64位整数的数据类型,在存储方式和使用方式上没有区别

两者的区别在于,它们命名的发起人不同,支持的平台不同

long long这个数据类型,是UNIX平台发起并支持的
而__int64是微软从win95(VC6)开始发起并支持的

在老的windows开发平台下(如VC6),不识别long long
而老的UNIX,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值