题意:在一个序列中找到两个数a和b,使得a*b的因子个数最多,输出最多的因子个数。

思路:数据较多,处理会很慢。对序列中每个数字进行质数分解求因子个数,然后按照因子个数降序排列,对前50个因子最多的数进行暴力求两两之积的因子个数就行了。1s左右就能出结果。低于50的就会WA了。

 #include <bits/stdc++.h>
using namespace std;
int a[];
pair<int,int> pa[];
int getAllFactors(int x, vector<int> &vect) //辅助!
{
for (int j = ; j * j <= x ; ++ j)
{
while (x % j == )
vect.push_back(j) , x /= j;
}
if(x>)
vect.push_back(x);
return vect.size();
} int getFactors(vector<int> &num)
{
vector< vector<int> > all;
all.resize(num.size());
for(int i=; i<num.size(); i++)
getAllFactors( num[i], all[i]); vector<int> tmp;
for(int i=; i<all.size(); i++)
tmp.insert(tmp.end(), all[i].begin(), all[i].end());
sort(tmp.begin(), tmp.end()); int z=;
for (int i = ; i < tmp.size() ; i++)
{
int l = i;
while (l < tmp.size() && tmp[l] ==tmp[i])
++ l;
z *= l - i + ;
i = l - ;
}
return z;
} int factors(int N)
{
if( == N) return ;
int cnt = ;
for (int j = ; j * j <= N ; j++)
{
if (N % j == )
{
cnt++;
if (j * j != N)
cnt++;
}
}
return cnt;
} int main() {
//freopen("input.txt", "r", stdin);
int t;
while(cin>>t)
{
for(int i=; i<t; i++)
{
scanf("%d",&a[i]);
pa[i]=make_pair(factors(a[i]),a[i]);
} sort(pa,pa+t);
reverse(pa,pa+t);
vector<int> tmp;
int n = t>? : t;
int ans=;
for(int i=; i<n; i++)
{
for(int j=i; j<n; j++)
{
tmp.clear();
tmp.push_back(pa[i].second);
tmp.push_back(pa[j].second);
ans=max(getFactors(tmp), ans);
}
}
cout<<ans<<endl;
}
return ;
}

AC代码

hihoCoder #1165 : 益智游戏 (挑战赛11 B题)的更多相关文章

  1. hihocoder 1165 : 益智游戏

    时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 幽香今天心情不错,正在和花田里的虫子玩一个益智游戏.这个游戏是这样的,对于一个数组A,幽香从A中选择一个数a,虫子从A中选 ...

  2. Wannafly挑战赛11 D 题 字符串hash + 卡常

    题目链接 https://ac.nowcoder.com/acm/contest/73#question map与order_map https://blog.csdn.net/BillCYJ/art ...

  3. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路

    阿里聚安全攻防挑战赛第三题Android PwnMe解题思路 大家在聚安全挑战赛正式赛第三题中,遇到android app 远程控制的题目.我们今天带你一探究竟,如何攻破这道题目. 一.题目 购物应用 ...

  4. hihoCoder挑战赛34 B题(快速求第k轮冒泡排序的结果)

    官方题解:https://media.hihocoder.com/contests/challenge34/tutorials-previewed.pdf 题目链接:http://hihocoder. ...

  5. hihoCoder挑战赛11.题目4 : 高等理论计算机科学(LCA)

    clj在某场hihoCoder比赛中的一道题,表示clj的数学题实在6,这道图论貌似还算可以... 题目链接:http://hihocoder.com/problemset/problem/1167 ...

  6. hihoCoder挑战赛11 A 随机斐波那契

    算了前三项.....发现是个大水题...   #include<stdio.h> int main() { int n; while (~scanf("%d", &am ...

  7. 【20171027早】alert(1) to win 第9,10,11,12题

    人在江湖,不服就干! 第9题: function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { r ...

  8. 【hihoCoder】【挑战赛#12】

    模拟+枚举+模拟……+构造 QAQAQQQ rank12求杯子! A 顺子 ……模拟题,分类讨论一下就好了……比如当前四张牌是不是同一花色……是不是连续的四张牌,如果是连续的四张牌,是不是两边的……( ...

  9. HihoCoder - 1048 状压DP 经典题

    hihocoder题解说的十分清晰了,这份代码就是从讲解里学习的 方案数就是不断枚举合法状态下横放竖放或两者均可 合法判断的依据是记录当前行和下一行的状态 防止重复枚举的方法是先按行后按列 递归基瞎写 ...

随机推荐

  1. 卸载openjdk安装java后,netbeans启动不了

    Cannot find java. Please use the --jdkhome switch. 默认的jdkhome不存在了,所以重新指定一下就可以了. 修改 /netbeans-8.0/etc ...

  2. hdu4886 TIANKENG’s restaurant(Ⅱ) (trie树或者模拟进制)

    TIANKENG’s restaurant(Ⅱ) Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 130107/65536 K (Ja ...

  3. Elasticsearch之match_phrase小坑记录

    1.问题抛出 某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来. 举例: title=公路局正在治理解放大道路面积水问题. 输入关键词:道路,能否搜 ...

  4. LIS与LCS的nlogn解法

    LIS(nlogn) #include<iostream> #include<cstdio> using namespace std; ; int a[maxn]; int n ...

  5. Linux 基础命令(一)

    Linux 基础: https://www.cnblogs.com/linhaifeng/articles/6045600.html Linux 比 Windows 更稳定做服务器,开发出来的软件需要 ...

  6. 【转】mysql数据库的数据类型

    一.数值类型            Mysql支持所有标准SQL中的数值类型,其中包括:                严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC ...

  7. C# 写 LeetCode easy #7 Reverse Integer

    7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 ...

  8. Shaderlab blend

    http://www.cnblogs.com/daxiaxiaohao/p/4059310.html 1.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们 ...

  9. Sublime Text 3 最新注册码激活码 和 Sublime Text 2 注册码

    Sublime是一款很好用的很轻巧的编辑器,堪称一代神级编辑器.此篇文章用于简单学习记录下神器的激活码,不作其他用途.如有侵权,请联系删除,谢谢~~   1.官方下载地址: http://www.su ...

  10. JAVA接口详细讲解

    接口 接口的概念  接口代表的是一个功能的集合,定义规范,所有的方法都是抽像方法,这是一种思想是一种规则,将这个种规则称为接口. 接口的定义 使用关键字 interface 叫做接口 修饰符 inte ...