您的位置:首页 > 其它

51Nod 1024 矩阵中不重复的元素 | 技巧 数学

2017-09-02 08:17 337 查看

 

 

 

first try:

set<LL> sset;
int main()
{
LL m,n,a,b;
while(~scanf("%lld%lld%lld%lld",&m,&n,&a,&b)){
LL tt;
for(int i=0;i<n;i++){
tt=a;
for(int j=0;j<m;j++){
sset.insert((LL)pow((tt++),b));
}
b++;
}
printf("%d\n",sset.size());

}
return 0;
}

wrong

second try:

数非常大,考虑将数缩小,因为他是指数的,所以我们可以取一个对数

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define rep(i,a,n) for(int i = a; i < n; i++)
#define repe(i,a,n) for(int i = a; i <= n; i++)
#define per(i,n,a) for(int i = n; i >= a; i--)
#define clc(a,b) memset(a,b,sizeof(a))
#define INF 1e18+100
#define N 110
typedef long long LL;

set <double> s;
int main()
{
int m, n, a, b;
while(cin>>m>>n>>a>>b)
{
s.clear();
for(int i=a; i<a+n; i++)
{
for(int j=b; j<b+m; j++)
{
s.insert(1.0*j*log2(1.0*i));
}
}
cout<<s.size()<<endl;
}
return 0;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: