数学基本模板

不断更新!!!!!!!!!!!!!每次太麻烦了

素数打表

int prime[maxn],ans = 0; // prime表 
bool vis[maxn];//1-maxn 是否为素数 
void sushudabiao()
{
	vis[1] = true;
	for(int i = 2; i < maxn;i++)
		if(vis[i] == false)
		{
			prime[ans++] = i;
			for(int j = 2*i; j < maxn; j+=i)
				vis[j] = true;  
		}
}

最大公约数和最小公倍数

int gcd(int a,int b)
{
	return b?gcd(b,a%b):a;
}
int lcm(int a, int b)
{
    return a/gcd(a,b)*b;
}

判断两线段相交 详细请看https://blog.csdn.net/Nothing_227/article/details/80586141

bool solve(line a,line b)
{
	if(((a.x1-b.x1)*(a.y2-b.y1)-(a.x2-b.x1)*(a.y1-b.y1))*((a.x1-b.x2)*(a.y2-b.y2)-(a.x2-b.x2)*(a.y1-b.y2))>0) return false;
	if(((b.x1-a.x1)*(b.y2-a.y1)-(b.x2-a.x1)*(b.y1-a.y1))*((b.x1-a.x2)*(b.y2-a.y2)-(b.x2-a.x2)*(b.y1-a.y2))>0) return false;
	return true;
}

猜你喜欢

转载自blog.csdn.net/Nothing_227/article/details/81165011