题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=5211

题解:

1、筛法:

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std; const int maxn=+;
const int INF=0x3f3f3f3f; int n;
int a[maxn],mmp[maxn];
vector<int> mat[maxn]; void init(){
for(int i=;i<maxn;i++) mat[i].clear();
memset(mmp,-,sizeof(mmp));
} int main(){
while(scanf("%d",&n)==&&n){
init();
int maxa=-;
for(int i=;i<=n;i++){
scanf("%d",a+i);
maxa=max(maxa,a[i]);
mmp[a[i]]=i;
}
int ans=;
for(int i=;i<=n;i++){
int minm=INF;
for(int j=;j*a[i]<=maxa;j++){
if(mmp[j*a[i]]!=-&&mmp[j*a[i]]>i){
minm=min(minm,mmp[j*a[i]]);
}
}
if(minm==INF) minm=;
ans+=minm;
}
printf("%d\n",ans);
}
return ;
}

2、倒着扫回来,不断刷新约数的值

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std; const int maxn=+;
const int INF=0x3f3f3f3f; int n;
int a[maxn],mmp[maxn]; void init(){
memset(mmp,,sizeof(mmp));
} int main(){
while(scanf("%d",&n)==&&n){
init();
for(int i=;i<=n;i++) scanf("%d",a+i);
int ans=;
for(int i=n;i>=;i--){
ans+=mmp[a[i]];
for(int j=;j*j<=a[i];j++){
if(a[i]%j==){
mmp[j]=i;
mmp[a[i]/j]=i;
}
}
}
printf("%d\n",ans);
}
return ;
}

HDU 5211 Mutiple 水题的更多相关文章

  1. hdu 5210 delete 水题

    Delete Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5210 D ...

  2. hdu 1251 (Trie水题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  3. hdu 5211 Mutiple 数学

    Mutiple Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5211 ...

  4. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  5. HDU 4493 Tutor 水题的收获。。

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=4493 题意我都不好意思说,就是求12个数的平均数... 但是之所以发博客,显然有值得发的... 这个题最 ...

  6. hdu 4802 GPA 水题

    GPA Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4802 Des ...

  7. hdu.5211.Mutiple(数学推导 && 在logn的时间内求一个数的所有因子)

    Mutiple  Accepts: 476  Submissions: 1025  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 6553 ...

  8. hdu 4493 Tutor 水题

    Tutor Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4493 D ...

  9. hdu 5495 LCS 水题

    LCS Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5495 Descr ...

随机推荐

  1. Golddata如何采集需要登录/会话的数据?

    概要 本文将介绍使用GoldData半自动登录功能,来采集需要登录网站的数据.GoldData半自动登录功能,就是指通过脚本来执行登录,如果需要验证码或者其它内容需要人工输入时,可以通过收发邮件来执行 ...

  2. 分布式日志收集框架Flume

    分布式日志收集框架Flume 1.业务现状分析 WebServer/ApplicationServer分散在各个机器上 想在大数据平台Hadoop进行统计分析 日志如何收集到Hadoop平台上 解决方 ...

  3. go语言 os.Rename() cannot move the file to a different disk drive 怎么办

    时值我小病在家休养生息,喜欢跳广场舞的外公来寻求我的帮助,他们跳广场舞是将存有歌曲的U盘插到音响上面,而音响大部分都是只能显示歌曲的索引index,不能直接显示歌曲名,所以为了方便他们会在U盘里面对歌 ...

  4. 数据结构与算法之排序(1)冒泡排序 ——in dart

    最经典的入门排序算法,冒泡排序,dart语言实现.数组仍然采用随机生成的数组,使用dart内置的List 的generate方法,排序前后分别打印出数组,以观察效果. import 'dart:mat ...

  5. NodeJS设置Header解决跨域问题

    转载: NodeJS设置Header解决跨域问题 app.all('*', function (req, res, next) { res.header('Access-Control-Allow-O ...

  6. 20155217 2016-2017-2《java程序设计》第一周学习总结

    20155217 2016-2017-2<java程序设计>第一周学习总结 浏览教材,根据自己的理解每章提出一个问题 java平台和java编程语言的区别? 怎样使用IDE来管理原始码与位 ...

  7. 2017-2018-2 《网络对抗技术》 20155322 第二周 Exp1 PC平台逆向破解(5)M

    #2017-2018-2 <网络对抗技术> 20155322 第二周 Exp1 PC平台逆向破解(5)M [博客目录] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 ...

  8. 2016-2017-2015329 《Java程序设计》第4周学习总结

    学号 2016-2017-2015329 <Java程序设计>第4周学习总结 教材学习内容总结 面向对象有三大特性:封装.继承.多态 封装 封装是指,一种将抽象性函式接口的实例细节部份包装 ...

  9. 百度地图api 常用 例子

    功能一:获取map地图窗口的可视区域: var map = new BMap.Map("allmap");            // 创建Map实例 map.centerAndZ ...

  10. WPF ControllTemplate Triggers小记 - 简书

    原文:WPF ControllTemplate Triggers小记 - 简书 WPF中,样式模板中如果定义EventTrigger事件方式实现动画.那么需要注意两点: 1.对于绑定的属性的Event ...