1、大数运算
大数运算(即高精度运算),也就是指那些超过规定范围的数值运算(int范围为-22亿--+22亿),要利用数组来进行运算,
数组一位存储数值的一位,然后对应位数直接进行运算。
例如两数相加,输入的两个数值是用字符串形式,然后将其逆序转化为int型,然后顺序进行对位直接运算,然后再顺序判断数组
每一位的值是否需要进位并进位,然后逆序输出,输出的时候要从数组最大位开始判断并找到第一个非零数(目的是略去前面不必
要的零)
先数组对位直接相加,然后再判断数组每一位的值是否需要进位并直接进位。
2、简单深搜DFS
深搜就是以A为定点利用循环向上下左右四个方向依次搜索,向某一个方向搜索时,再以该点为定点利用循环向上下左右四个方 向 依次搜索。
广搜是以A为定点向上下左右四个方向搜索,然后再依次以其上下左右四个方向的点为定点向上下左右四个方向搜索,用到栈。
对于深搜其实就是递归调用,要注意其边界条件是否符合,符合则进一步搜索,注意搜索时要标记,避免重复,然后改变变量。
3、scanf函数返回值 是指读出的变量个数,如scanf("%d%d",&a,&b);
如果只有一个整数输入,则函数返回值是1;如果两个整数输入,则函数返回值是2,如果一个都没有,则函数返回值是-1.
EOF是一个预定义的常量,其值等于-1
4、while(scanf("%d",&a)!=EOF)等价于while(cin>>a)
5、memset(a,初始值,sizeof(a));
其初始值可以为-1,0,1
6、求X的位数,可以用log10(X)+1
大数运算(即高精度运算),也就是指那些超过规定范围的数值运算(int范围为-22亿--+22亿),要利用数组来进行运算,
数组一位存储数值的一位,然后对应位数直接进行运算。
例如两数相加,输入的两个数值是用字符串形式,然后将其逆序转化为int型,然后顺序进行对位直接运算,然后再顺序判断数组
每一位的值是否需要进位并进位,然后逆序输出,输出的时候要从数组最大位开始判断并找到第一个非零数(目的是略去前面不必
要的零)
先数组对位直接相加,然后再判断数组每一位的值是否需要进位并直接进位。
2、简单深搜DFS
深搜就是以A为定点利用循环向上下左右四个方向依次搜索,向某一个方向搜索时,再以该点为定点利用循环向上下左右四个方 向 依次搜索。
广搜是以A为定点向上下左右四个方向搜索,然后再依次以其上下左右四个方向的点为定点向上下左右四个方向搜索,用到栈。
对于深搜其实就是递归调用,要注意其边界条件是否符合,符合则进一步搜索,注意搜索时要标记,避免重复,然后改变变量。
3、scanf函数返回值 是指读出的变量个数,如scanf("%d%d",&a,&b);
如果只有一个整数输入,则函数返回值是1;如果两个整数输入,则函数返回值是2,如果一个都没有,则函数返回值是-1.
EOF是一个预定义的常量,其值等于-1
4、while(scanf("%d",&a)!=EOF)等价于while(cin>>a)
5、memset(a,初始值,sizeof(a));
其初始值可以为-1,0,1
6、求X的位数,可以用log10(X)+1