首页 > 其他分享 >美丽角对

美丽角对

时间:2024-01-29 15:36:16浏览次数:15  
标签:cc h1 角对 long t1 ++ tot 美丽

  • asin、acos、atan:反正弦、反余弦、反正切函数
  • 可以利用以上函数得到Π的值
  • 注意1的特判
点击查看代码
#include <bits/stdc++.h>
using namespace std;
struct t1
{
	long long x,y;
}t[100005];
long long read1()
{
	char cc=getchar();
	while(!(cc>=48&&cc<=57))
	{
		if(cc=='-')
		{
			break;
		}
		cc=getchar();
	}
	bool f=false;
	long long s=0;
	if(cc=='-')
	{
		f=true;
	}
	else
	{
		s=cc-48;
	}
	while(1)
	{
		cc=getchar();
		if(cc>=48&&cc<=57)
		{
			s=s*10+cc-48;
		}
		else
		{
			break;
		}
	}
	if(f==true)
	{
		s=-s;
	}
	return s;
}
t1 operator-(t1 a,t1 b)
{
	t1 tmp;
	tmp.x=a.x-b.x;
	tmp.y=a.y-b.y;
	return tmp;
}
long long c(t1 a,t1 b)
{
	return a.x*b.y-a.y*b.x;
}
double p(t1 a,t1 b)
{
	return a.x*b.x+a.y*b.y;
}
double l(t1 a)
{
	return sqrt(a.x*a.x+a.y*a.y);
}
bool cmp(t1 a,t1 b)
{
	t1 h1=a-t[1];
	t1 h2=b-t[1];
	if(c(h1,h2)!=0)
	{
		return c(h1,h2)>0;
	}
	return h1.x<h2.x;
}
long long gcd(long long n,long long m)
{
	if(m==0)
	{
		return n;
	}
	return gcd(m,n%m);
}
long long s[100005],tot,cnt[200];
int main()
{
	long long n;
	cin>>n;
	for(long long i=1;i<=n;i++)
	{
		t[i].x=read1();
		t[i].y=read1();
		if(t[i].y<t[1].y||t[i].y==t[1].y&&t[i].x<t[1].x)
		{
			swap(t[i],t[1]);
		}
	}
	sort(t+2,t+n+1,cmp);
	tot=1;
	s[1]=1;
	for(long long i=2;i<=n;i++)
	{
		while(tot>1)
		{
			t1 h1=t[i]-t[s[tot]];
			t1 h2=t[s[tot]]-t[s[tot-1]];
			if(c(h1,h2)>=0)
			{
				tot--;
			}
			else
			{
				break;
			}
		}
		tot++;
		s[tot]=i;
	}
	tot++;
	s[tot]=1;
	tot++;
	s[tot]=s[2];
	for(long long i=2;i<=tot-1;i++)
	{
		t1 h1=t[s[i-1]]-t[s[i]];
		t1 h2=t[s[i+1]]-t[s[i]];
		double d=acos(p(h1,h2)/l(h1)/l(h2));
		d=d/acos(-1)*180;
		int D=floor(d);
		cnt[D]++;
	}
	long long ans=cnt[1]*(cnt[1]-1)/2;
	for(long long i=0;i<180;i++)
	{
		for(long long j=i+1;j<180;j++)
		{
			if(gcd(i,j)==1)
			{
				ans=ans+cnt[i]*cnt[j];
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}

标签:cc,h1,角对,long,t1,++,tot,美丽
From: https://www.cnblogs.com/watersail/p/17994612

相关文章

  • 谁说后端不能画出美丽的动图?让我来给大家拜个年!
    今天我们要介绍的是Python的内置库——小海龟(turtle),它是一个非常实用的绘画工具,不仅可以帮助我们绘制图形,还能让我们查看整个绘画过程。即使对绘画一窍不通的人也能够使用它来创作出生动、形象的gif动图。现在正是龙年即将到来,距离过年也只有几天的时间了。因此,我今天的主要目的就......
  • 【leetcode 2949 统计美丽子字符串】
      importjava.util.HashMap;importjava.util.Map;classSolution{publicstaticvoidmain(String[]args){Solutionsolution=newSolution();longans=solution.beautifulSubstrings("baeyh",2);System.out.printl......
  • Python美丽图案生成方法
    使用samila库可以生成美丽的图案,例如:#pipinstallsamila==1.1orpip3installsamila==1.1importmatplotlib.pyplotaspltfromsamilaimportGenerativeImage#g=GenerativeImage()#g.generate()#g.plot()#plt.show()importrandomimportmathdeff1(x,......
  • 手造时代与新一数字探索元宇宙VR技术赋能美丽乡村文化建设事业
    近日,新一(苏州)数字科技有限公司和手造时代(苏州)文创有限责任公司战略合作的元宇宙互动创意开发项目正式签约,作为苏州吴中区重点文化产业项目在江苏省苏州市吴中区2023年苏作文创峰会中登台签约。2023年11月16日,江苏省苏州市吴中区委书记丁立新,江苏省苏州市委组织部副部长陈雪......
  • 如何使用Matplotlib模块的text()函数给柱形图添加美丽的标签数据?
    (如何使用Matplotlib模块的text函数给柱形图添加美丽的标签数据?)1简单引入在进行数据分析时,当一些图表数据,比如柱形图我们想让它更直观的显示一些内容,有时候会给柱形图添加标签,那如何实现这样的效果呢?还有比如我们把某手机品牌1-12月每月的销量制作成柱形图,那如何在柱形图上......
  • Python美丽图案生成方法
    使用samila库可以生成美丽的图案,例如:#pipinstallsamila==1.1orpip3installsamila==1.1importmatplotlib.pyplotaspltfromsamilaimportGenerativeImage#g=GenerativeImage()#g.generate()#g.plot()#plt.show()importrandomimportmathdeff1(x......
  • 教3妹学编程-算法题】2914. 使二进制字符串变美丽的最少修改次数
    3妹:呜呜,烦死了,脸上长了一个痘2哥 :不要在意这些细节嘛,不用管它,过两天自然不就好了。3妹:切,你不懂,影响这两天的心情哇。2哥 :我看你是不急着找工作了啊,工作那么辛苦,哪还有时间想这些啊。3妹:说到找工作,我又要去刷题了。2哥:我给你出一道关于美丽的题吧,让你的心情美丽美丽~ 1题目......
  • 从GPU的内存访问视角对比NHWC和NCHW
    NHWC和NCHW是卷积神经网络(cnn)中广泛使用的数据格式。它们决定了多维数据,如图像、点云或特征图如何存储在内存中。NHWC(样本数,高度,宽度,通道):这种格式存储数据通道在最后,是TensorFlow的默认格式。NCHW(样本数,通道,高度,宽度):通道位于高度和宽度尺寸之前,经常与PyTorch一起使用。......
  • 文明城市美丽乡村随手拍小程序开源版开发
    文明城市美丽乡村随手拍小程序开源版开发拍照功能:用户可以通过小程序直接打开手机相机,拍摄当前所见的城市或乡村美景。美化照片功能:用户可以在拍摄或选择的照片上进行美化处理,如调整亮度、对比度、饱和度,添加滤镜等,以增强照片的美感。添加标签功能:用户可以为照片添加标签,如城市名、......
  • 100048.美丽塔 2 - 364
    美丽塔2给你一个长度为n下标从0开始的整数数组maxHeights。你的任务是在坐标轴上建n座塔。第i座塔的下标为i,高度为heights[i]。如果以下条件满足,我们称这些塔是美丽的:1<=heights[i]<=maxHeights[i]heights是一个山状数组。如果存在下标i满足以下条......