做题时考虑输出结果的上、下边际范围,极限,尤其是在做简单题的时候。
除法能换成乘法的地方,尽量用乘法。
做题时,确保每个句子、每个单词都读懂,读题是做题的根本
处理字符串,千万要保证它以“\0”结尾
进行数组优化,可以在输入的时候就进行向结果靠拢的操作
应用分治处理时
调用函数时,传数组只需打入数组名
传数组内元素如:temp(a[0]);
C语言中大多数头文件在C中仍然可以用,但推荐在头文件前加一个小写的c字母,然后去掉.h后缀,如ctype.h——cctype
比赛结束前,一定要把正确率稍高点的题都看完
做题时,弄懂题意是前提,普遍最先刷出来的题一定是水题,普遍都做出来的题也一定不难,不要把问题复杂化
注意题目中,测试数据的范围,数组千万别开小了,数据的类型千万别选错了
分治三步法
划分问题:把问题的实例划分成子问题
递归求解:递归解决子题
合并问题:合并子问题的解得到原问题的解
有的题可能用到
scanf("%d,%d",&a,&b);
scanf("%d/%d",&a,&b);
中间必须要输入该字符才可以
浮点数计算有误差,可以用a- dis > 1e-5的形式,
有时题意有说输入时,N>M,但还是比较交换一下确保比较好
对数是处理数论的主要工具
^为位运算,表示异或,开关性
如:1010^1111=0101
与(&)、或(|)、非(!)
与集合有关的题可以用位运算:
10110:表示集合{1,2,4}
01100:表示集合{2,3}
位的最后一位为1,表示空集。
全集定义为ALL_BITS=(1<<n)-1
与、或、非,对应集合的交、并、对称差
数组开的很大时,放在main()函数外面
a[x][y]==0;可简写为!a[x][y];
可用如下语句控制空的输出,第一个输出前没有空,剩下的输出前都以空。
for (int i = 0; i < n; i)
{
if (i != 0) printf(" ");
………………..
}
C输入带空的字符串(特别注意,字符串必须用string类型)
举例: #include<iostream>
using namespace std;
int main()
{
string s;
while(getline(cin,s)!=NULL)
{
cout<<s<<endl;
}
return 0;
}
在C语言中,“乘以2”也可以写成“<<1”,意思是“左移一位”。
0、1互换,可应用于标记法
#include<iostream>
usingnamespace std;
int main()
{
int a,q=1;
for(int i=0;i<4;i)
{
q=!q;
cout<<q<<" ";
}
return 0;
}
输出结果:0 1 0 1
重点:q=!q;
PI=acos(-1.0)
C语言中“%03d”:输出一个数变量,不足3位前面补0.
不借助变量交换(不推荐用)
int a,b;
scanf("%d%d",&a,&b);
a=ab;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34960-1.html
逼来了
我们也去美国巡航