题目链接:

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. jQuery增减类操作代码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. underscore.js常用方法整理(慢慢完善)

    整理自Underscore.js (1.8.3) 中文文档,http://www.css88.com/doc/underscore/ 1. extend _.extend() 复制对象中的所有属性到目 ...

  3. docker入门——安装(CentOS)、镜像、容器

    Docker简介 什么是docker 官方解释: Docker is the company driving the container movement and the only container ...

  4. 在客户端模拟调用srv和topic

    rostopic pub -r 10 /toipic_name Tab+Tab rosservice call /service_name  Tab+Tab rostopic pub -r 10 /c ...

  5. keil5 配置 stm32f103rc 软件仿真

  6. ASP.NET 并发控制

    当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”. 并发控制的类型 通常,管理数据库中的并发有三种常见 ...

  7. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  8. 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable.

    # 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable. 这是我在给我的Mac电脑安装 ...

  9. JS中的eval函数

           最近开始慢慢学习前端的脚本了,上次碰到了一个问题,需要通过一个对象的属性名称来获得这个对象这个属性的值.如果在C#中,那么直接通过反射就可以了.而在js中,也有类似的函数,那就是eval ...

  10. C#之#if #endif的简单用法

    有时候我们看到别人的代码中有#if #endif,其实这是通过不同版本来选择运行哪段代码,和咱们的if,else是一样的.下面看下简单的用法 #if DEBUG txt_display.Text = ...