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);
}