Gym 100712K Runtime Error
2017-02-15 20:30
78 查看
题目
题意:给你N个数,这些数中选2个乘积为K,有多种数据的话选最大的数*最小的数。比如找最大的数 就从小到大的顺序 末尾开始找。很容易想到是两个for。 但复杂度O2。 这里就有一种降低复杂度的办法 把a[i]出现过一次记作b[a[i]]++; 等于map<a,b> 再舍去0 或者不能被整除的情况之后 再找最大的值。 除出来之后就是最小值
结果就得到最大值*最小值
下面附上代码:
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 1E4 * 1E9
#define pi acos(-1)
#define endl '\n'
#define me(x) memset(x,0,sizeof(x));
const int maxn=1e3+5;
const int maxx=1e6+5;
int a[maxx],b[maxx];
int main()
{
int T;
cin>>T;
while(T--)
{
int N,K;
cin>>N>>K;
for(int i=1;i<=N;i++)
{
cin>>a[i];
b[a[i]]++;
}
int ans=1E9;
for(int i=1;i<=N;i++)
{
if(a[i]==0||(K%a[i]!=0)) continue;
if(b[K/a[i]]>((K/a[i])==a[i]))
{
if(ans>=a[i]) ans=a[i];
}
}
if(ans==1E9) cout<<-1<<endl;
else cout<<ans<<" "<<K/ans<<endl;
me(a);me(b);
}
}
/*
4
6 12
3 6 2 4 2 9
2 1
1 2
4 36
12 18 3 36
*/
题意:给你N个数,这些数中选2个乘积为K,有多种数据的话选最大的数*最小的数。比如找最大的数 就从小到大的顺序 末尾开始找。很容易想到是两个for。 但复杂度O2。 这里就有一种降低复杂度的办法 把a[i]出现过一次记作b[a[i]]++; 等于map<a,b> 再舍去0 或者不能被整除的情况之后 再找最大的值。 除出来之后就是最小值
结果就得到最大值*最小值
下面附上代码:
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 1E4 * 1E9
#define pi acos(-1)
#define endl '\n'
#define me(x) memset(x,0,sizeof(x));
const int maxn=1e3+5;
const int maxx=1e6+5;
int a[maxx],b[maxx];
int main()
{
int T;
cin>>T;
while(T--)
{
int N,K;
cin>>N>>K;
for(int i=1;i<=N;i++)
{
cin>>a[i];
b[a[i]]++;
}
int ans=1E9;
for(int i=1;i<=N;i++)
{
if(a[i]==0||(K%a[i]!=0)) continue;
if(b[K/a[i]]>((K/a[i])==a[i]))
{
if(ans>=a[i]) ans=a[i];
}
}
if(ans==1E9) cout<<-1<<endl;
else cout<<ans<<" "<<K/ans<<endl;
me(a);me(b);
}
}
/*
4
6 12
3 6 2 4 2 9
2 1
1 2
4 36
12 18 3 36
*/
相关文章推荐
- Gym 100712K Runtime Error
- Gym - 100735H
- 【Gym - 101124A】The Baguette Master (数学,几何)
- CodeForces Gym 100500A A. Poetry Challenge DFS
- GYM 100247 H. Secret Information(贪心)
- GYM 100030 I.Prohibition(贪心)
- Gym - 101246A Bencoding【模拟】
- GYM 100488 B.Impossible to Guess(构造)
- The Knapsack problem Gym - 101064L
- Gym - 100796K Profact 阶乘的乘积 DFS+剪枝
- GYM 100712 B.Rock-Paper-Scissors(水~)
- GYM 100883 G.Count Mix Strings(组合数学)
- map和结构体的简单运用Gym - 100883C
- GYM 100883 I.Teleportia(Floyd)
- GYM 101102 K.Topological Sort(线段树)
- GYM 101149 F.The Weakest Sith(水~)
- codeforces-gym-100187-D【组合数】【逆元】
- Codeforces Gym 100803C Shopping 贪心好题
- GYM 100971 K.Palindromization(hash)
- 【CodeForces】gym-101205B Curvy Little Bottles (2012 ACM-ICPC World Finals B)