前言
这篇帖子是我在参考刘汝佳老师的算法竞赛入门经典这本书复习备赛的时候,记录了一些算法竞赛的小技巧,供自己复习,供各位参考。分享给各位在算法竞赛路上努力的朋友们~(注:很多是非常基础的,打牢基础也很重要)
持续更新ing
Part one
- aabb=a×1100+b×11
- 整数/整数=整数 浮点数/浮点数=浮点数
- 计算结果为25,要输出025:
printf("%03d",m)
,其中m为存25的变量 - double类型的变量输入,必须是
scanf("%lf",&r)
,其中r为变量 - while循环适合用于:循环的次数不确定,且n也不是“递增式”的循环
- 10的负6次方:
1e-6
- scanf函数的返回值是成功成功输入变量的个数,常用此技巧输入不确定个数(如题目中提出输入一些整数,)
- 要计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。
- 用scanf输入long long型的时候,格式符为
%I64d
- 当数组需要开的很大的时候,务必声明在main函数之外,否则将异常退出。
Part two
- 数组a复制k个元素到数组b:
memcpy(b,a,sizeof(int)*k
- 类似1,把数组a清零:
memset(a,0,sizeof(a))
,且memset需要头文件string.h
- 对于类似于不断开灯关灯这样的两个状态转换的问题,使用数组存储状态并使用非运算符改变状态:
a[j]=!a[j]
总结
注重基础 别让语言绊倒你。