题意:在一个序列中找到两个数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. iview组件select之默认展示label,并传空value做方法入参

    要求: 默认查询操作日期在当日的数据:(打开页面时默认选中时间.全部) 后台约定:选定“全部”这个条件,传的值是空"" 综上:使用select选择框的v-model绑定数据,使用: ...

  2. java之Date(日期)、Date格式化、Calendar(日历)

    参考http://how2j.cn/k/date/date-date/346.html Date(日期) Date类 注意:是java.util.Date; 而非 java.sql.Date,此类是给 ...

  3. 干货:SEO长尾关键词优化方法和技巧

    在网站SEO优化上,优化比较成功的网站,根据SEO界前辈的经验结论,网站的总流量主要来源于长尾关键词,占网站总流量的80%.长尾关键词主要分布在网站的文章页,其次就是栏目页title.标签页.专题页等 ...

  4. 存储过程接收JSON格式数据

    前端有可能一次性上传多笔记录,并使用JSON序列化. 现在在MS SQL Server 2016版本上,可以直接处理JSO数据. 如下面的前端序列化的数据: DECLARE @json_string ...

  5. js转义字符

    \"   \/   \" 例: span = "<span onclick=\"xadmin.open('编辑','\/junyi\/member\/up ...

  6. cogs 721. [SDOI2007] 线性方程组

    721. [SDOI2007] 线性方程组 ★★   输入文件:gaess.in   输出文件:gaess.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 已知 n 元 ...

  7. SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面

    一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...

  8. GridSearchCV.grid_scores_和mean_validation_score报错

    目录 GridSearchCV.grid_scores_和mean_validation_score报错 0. 写在前面 1. 问题描述和解决过程 2. 不想比比直接看结果部分 GridSearchC ...

  9. Python数据科学手册Seaborn马拉松可视化里时分秒转化为秒数的问题

    Python数据科学手册Seaborn马拉松可视化里时分秒转化为秒数的问题 问题描述: 我实在是太懒了,问题描述抄的网上的哈哈哈:https://www.jianshu.com/p/6ab7afa05 ...

  10. Ant Design中的Form组件

    1. 使用Form.create()包裹过的组件可以获取到this.props.form属性 Form.create()(Comp) 2. getFieldDecorator() // 在表单中的使用 ...