⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1007_other.cpp

📁 ACM1000_1010竞赛的赛题,源码
💻 CPP
字号:
//1545 2003-05-24 15:26:19 Accepted 1007 C++ 00:00:06 392K just for play 
#include<math.h>
#include<stdio.h>
const double precison=10e-8;


inline double equal_db(double fir,double sec)
{
	return (fabs(fir-sec)<precison);
}
void bubble_sort(double num[],int n)
{
	int i,j;
	for(i=0;i<n;i++)
	{
		int pt=i;
		for(j=i+1;j<n;j++)
			if(num[j]<num[pt]+precison)	pt=j;
		if(pt!=i)
		{
			double temp=num[i];
			num[i]=num[pt];num[pt]=temp;
		}
	}
}
double pow_n(int n,int tt)
{
	double result=1;int i;
	for(i=0;i<tt;i++)
		result*=(double)n;
	return result;
}

int main()
{
//	freopen("1007.in","r",stdin);	
//	freopen("1007.out","w",stdout);
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		double point[500];
		int cnt=0;int i,j;
		double from[101],to[101];
		for(i=0;i<n;i++)
		{
			scanf("%lf%lf",&from[i],&to[i]);
			for(j=0;j<cnt;j++)			
				if(equal_db(point[j],from[i]))	break;
			if(j==cnt)	point[cnt++]=from[i];
			for(j=0;j<cnt;j++)
				if(equal_db(point[j],to[i]))	break;
			if(j==cnt)	point[cnt++]=to[i];
		}
				
		bubble_sort(point,cnt);
	
		double result=0;
		for(i=0;i<cnt-1;i++)
		{
			int total=0;
			for(j=0;j<n;j++)
				if(point[i]+precison>from[j]&&to[j]+precison>point[i+1])	total++;
			double tt=pow_n(n,total);
			result+=(tt-1)*(point[i+1]-point[i]);
		}
		printf("%d\n",n);
		printf("%.10e\n",result);
	}
	return 0;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -