奇怪的笔记酱

//摘自洛谷:

//0x3f3f3f3f还能给我们带来一个意想不到的额外好处:如果我们想要将某个数组清零,我们通常会使用memset(a,0,sizeof(a))这样的代码来实现(方便而高效)

//但是当我们想将某个数组全部赋值为无穷大时(例如解决图论问题时邻接矩阵的初始化),就不能使用memset函数而得自己写循环了

(写这些不重要的代码真的很痛苦)

 //我们知道这是因为memset是按字节操作的,它能够对数组清零是因为0的每个字节都是0

 //现在好了,如果我们将无穷大设为0x3f3f3f3f,那么奇迹就发生了,0x3f3f3f3f的每个字节都是0x3f!

//所以要把一段内存全部置为无穷大,我们只需要memset(a,0x3f,sizeof(a))。

//http://blog.csdn.net/u011394362/article/details/39135107


 浮点数处理

1.我们一般认为两个浮点数相等,当且当他们之间的误差不超过1e-8。

2.对于浮点数进行(int)转换时,计算机是只取整数部分的。

e.g.1.999999999转换为int就是1,所以

浮点数向int转换,会丢失精度。

为了避免这个,建议如果想取到整数部分。
可以使用
float b;
int a;
a=(b+0.5);
这样写的话,就是四舍五入。
如果写成a=b
可能有0.99999999999被截断,a就是0的情况。


字符串处理

1.string的find函数

如果说要find的字串不在str里面,该函数会返回string::npos,即-1。str.find("...."); 的返回值,不明白,应该也是一样。str.find("asdf"); 的返回值应该是0,即在str中的index位置。 found=str.find(str2);//found是str2在str中第一次出现的位置,找不到返回string::npos,即-1。
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define maxn 105
using namespace std;
string a,b;
int main()
{
    cin>>a>>b;
    cout<<a.find(b)+1;
    puts("");
    return 0;
}
e.g.

 2.char的strstr()

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

#include<iostream>

#include<cstring>

using namespace std;

int main()

{

    char a[100],b[100];

    cin>>a>>b;

    cout<<strstr(a,b)-a+1<<endl;

    return 0;

}
e.g.

3.字符串拆分至二维数组

#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define maxn 1005
using namespace std;
char s[maxn],a[105][105];
int main()
{
    gets(s);
    int n=strlen(s);
    int k=0,j=0;
    for(int i=0;i<n;++i)
    {
        if(s[i]==' ') 
        {
               k++;
               a[k][j]='\0';
            j=0;
               continue;
        }
           a[k][j]=s[i];
           j++;
    }
    for(int i=k;i>=0;--i)cout<<a[i]<<" ";
    puts("");
    return 0;
}
e.g.

 

 


 数论

对于整数p q,有p*q==gcd(p,q)*lcm(p,q) 
设s=lcm(p,q)/gcd(p,q)==y0/x0; 
则s=p*q/gcd(p,q)^2 
因为p/gcd(p,q)与q/gcd(p,q)互质,所以问题转化成了找一组x,y,使得x*y==s(x*y==y0/x0)且gcd(x,y)==1

 

posted @ 2016-10-30 10:47  pandaB  阅读(499)  评论(1编辑  收藏  举报