51nod 1024 矩阵中不重复的元素(用log缩小范围)

点此跳转题目

数据个数比较小,但每个数据算出来的值比较大,可以用log(x)缩小值域

#include<cmath>
#include<cstdio>
#include<algorithm>

using namespace std;

double f[100001];

int main()
{
	int m,n,a,b,t=0;
	scanf("%d%d%d%d",&m,&n,&a,&b);
	for(int i=0;i<n;++i)
		for(int j=0;j<m;++j)
			f[++t]=(b+j)*log(a+i);
	sort(f+1,f+t+1);
	int ans=1;
	for(int i=2;i<=t;++i)
		if(f[i]-f[i-1]>1e-10) ans++;
	printf("%d",ans);
}
posted @ 2021-03-24 17:32  TRTTG  阅读(27)  评论(0编辑  收藏  举报