51nod1024(math+set)

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1024

 

题意:中文题诶~

 

思路:要是能求出a^b的值来就好了。。a<=100, b<=100,直接求显然是相当麻烦的;

高中数学学过对数,对于指数问题我们可以考虑一下是否可以用对数化简,这道题显然是可以的;因为如果 logN(a)=logN(b),那么a=b(log是单射函数啦);

所以我们可以给矩阵里的所有元素取相同底数的对数然后再来比较,这里我们可以取N=2,可以减一些误差。。。

log2(a^b)=b*log2(a), 这样就不用进行很大的幂运算了啦。。。

 

代码:

 1 #include <bits/stdc++.h>
 2 #define MAXN 110
 3 using namespace std;
 4 
 5 int main(void){
 6     int m, n, a, b;
 7     set<double> st;
 8     cin >> m >> n >> a >> b;
 9     for(int i=a; i<a+n; i++){
10         for(int j=b; j<b+m; j++){
11             st.insert(1.0*j*log2(i));
12         }
13     }
14     cout << st.size() << endl;
15     return 0;
16 }

 

转载于:https://www.cnblogs.com/geloutingyu/p/6280220.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值