51nod 1024 矩阵中不重复的元素 (STL)
来源:互联网 发布:白凡泄露天机知乎 编辑:程序博客网 时间:2024/05/20 14:18
一个m*n的矩阵。
该矩阵的第一列是a^b,(a+1)^b,.....(a + n - 1)^b
第二列是a^(b+1),(a+1)^(b+1),.....(a + n - 1)^(b+1)
.......
第m列是a^(b + m - 1),(a+1)^(b + m - 1),.....(a + n - 1)^(b + m - 1)
(a^b表示a的b次方)
下面是一个4*4的矩阵:
2^2=4, 2^3=8, 2^4=16, 2^5=32
3^2=9, 3^3=27, 3^4=81, 3^5=243
4^2=16, 4^3=64, 4^4=256, 4^5=1024
5^2=25, 5^3=125, 5^4=625, 5^5=3125
问这个矩阵里有多少不重复的数(比如4^3 = 8^2,这样的话就有重复了)
2^2=4, 2^3=8, 2^4=16, 2^5=32
3^2=9, 3^3=27, 3^4=81, 3^5=243
4^2=16, 4^3=64, 4^4=256, 4^5=1024
m = 4, n = 3, a = 2, b = 2。其中2^4与4^2是重复的元素。
Input
输入数据包括4个数:m,n,a,b。中间用空格分隔。m,n为矩阵的长和宽(2 <= m,n <= 100)。a,b为矩阵的第1个元素,a^b(2 <= a , b <= 100)。
Output
输出不重复元素的数量。
Input示例
4 3 2 2
Output示例
11
大暴力,n<100.。。。
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int maxn=500;int book[1000],bb[1000][1000];int main(){int i,j,k,n,m,a,b,ans,t;ans=0;cin>>m>>n>>a>>b;for(i=2;i<=a+n-1;i++) {if(book[i]==0) {for(k=1;;k++) { t=pow(i,k);if(t>a+n-1 ) break;if(t<a || book[t]) continue; book[t]=1; for(j=b;j<=b+m-1;j++) { if(bb[i][j*k]==0) { ans++; bb[i][j*k]=1; } } }}}cout<<ans<<endl;return 0;}
用 log 来优化指数函数。。 O(n*m)
对每个a^b去log,,因为是比较有没有相同的元素,所以缩小了数据规模
#include <bits/stdc++.h>using namespace std;int main(){int m,n,a,b,ans;cin>>m>>n>>a>>b;vector<double> vec;for(int i=0;i<n;i++){for(int j=0;j<m;j++){vec.push_back((b+j)*log(a+i));}}sort(vec.begin(),vec.end());ans=n*m;for(int i=1;i<n*m;i++){ if(vec[i]-vec[i-1]<1e-8)ans--; } cout<<ans<<endl;//cout<<unique(vec.begin(),vec.end())-vec.begin()<<endl;return 0;}
0 0
- 51nod 1024 矩阵中不重复的元素 (STL)
- 51nod 1024 矩阵中不重复的元素
- 51 NOD 1024 矩阵中不重复的元素(技巧)
- 51nod 1024 矩阵中不重复的元素
- 51NOD 1024 矩阵中不重复的元素
- 51nod-1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51Nod 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素
- 51NOD 1024 矩阵中不重复的元素
- 51Nod 1024 矩阵中不重复的元素
- 51NOD 1024 矩阵中不重复的元素
- 51nod 1024 矩阵中不重复的元素(技巧)
- 51Nod-矩阵中不重复元素的个数
- 二级指针作为函数参数申请内存
- 回调
- 开源中国源码学习数据篇(一)之android-async-http框架和AsyncTask
- VMware下安装Mac系统
- 自定义SwitchPreference时遇到的问题
- 51nod 1024 矩阵中不重复的元素 (STL)
- android 蓝牙断开监听
- assert()函数用法
- PAT-PAT (Advanced Level) Practise 1012 The Best Rank (25) (简单模拟)【二星级】
- HDOJ 2540 遮挡判断(数学)
- mongodb 性能测试
- lightoj 1275 - Internet Service Providers 【求导】
- 1008 Elevator
- leetcode 65:Valid Number 使用字符串匹配的细致分析