hdu 4961 Boring Sum 2014 Multi-University Training Contest 9
来源:互联网 发布:xml文件解析 java 编辑:程序博客网 时间:2024/06/07 06:14
这一题的想法很巧妙,倒着想,不是找倍数而是更新约数,注意在求b[i],c[i]要在找a[i]的约数之前求解,为了避免1,a[i]都会被标记的情况,约数只要枚举到sqrt(a[i]),因为x,y和y,x是对称的。
这一题把a,b,c的long long改成int就木有再TLE了是神马情况。。。
#include<iostream>#include<stdio.h>#include<cstdio>#include<stdlib.h>#include<vector>#include<string>#include<cstring>#include<cmath>#include<algorithm>#include<stack>#include<queue>#include <ctype.h>#include<map>#include<time.h>#include<bitset>using namespace std;//hdu 4961const int maxn=1e5+10;int n;int a[maxn];int b[maxn];int c[maxn];int d[maxn];long long sum;int main(){ freopen("input.txt","r",stdin); //freopen("data.txt","r",stdin); //freopen("out1.txt","w",stdout); //while(true) while(scanf("%d",&n)!=EOF) { // scanf("%d",&n); if(n==0) break; memset(d,0,sizeof(d)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); memset(a,0,sizeof(a)); sum=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n;i++) { if(d[a[i]]) { b[i]=a[d[a[i]]]; } else { b[i]=a[i]; } for(int x=1;x<(int)(sqrt(a[i]*1.0)+1);x++) { if(a[i]%x==0) { d[x]=i; d[a[i]/x]=i;// } } } memset(d,0,sizeof(d)); //c[n]=a[n]; for(int i=n;i>=1;i--) { if(d[a[i]]) { c[i]=a[d[a[i]]]; } else { c[i]=a[i]; } for(int x=1;x<(int) (sqrt(a[i]*1.0)+1);x++) { if(a[i]%x==0) { d[x]=i; d[a[i]/x]=i; } } } for(int i=1;i<=n;i++) { sum+=(long long)b[i]*c[i]; } printf("%I64d\n",sum); } return 0;}
0 0
- hdu 4961 Boring Sum--2014 Multi-University Training Contest 9
- hdu 4961 Boring Sum 2014 Multi-University Training Contest 9
- hdu 4961 Boring Sum(2014 Multi-University Training Contest 9)
- hdu 4970 Killing Monsters--2014 Multi-University Training Contest 9
- 【hdu 4970】 Killing Monsters 【2014 Multi-University Training Contest 9 】
- 2014 Multi-University Training Contest 9小记
- 2014 Multi-University Training Contest 9
- 2015 Multi-University Training Contest 3(hdu 5324 - Boring Class)树套树
- hdu 5793 A Boring Question(2016 Multi-University Training Contest 6——快速幂取模)
- (HDU 5793)2016 Multi-University Training Contest 6 A Boring Question (规律)
- 2012 Multi-University Training Contest 6-1009 hdu4358 Boring counting
- hdu 4861 Couple doubi ---2014 Multi-University Training Contest 1
- hdu 4864 Task---2014 Multi-University Training Contest 1
- 2014 Multi-University Training Contest 1 - 1004 / hdu 4864 Task
- hdu 4902 Nice boat--2014 Multi-University Training Contest 4
- [HDU 4862][2014 Multi-University Training Contest 1]Jump
- hdu 4915 Parenthese sequence--2014 Multi-University Training Contest 5
- hdu 4911 Inversion--2014 Multi-University Training Contest 5
- 关于浏览器在处理没有右尖括号闭合的标签和html注解
- HDU2151 Worm 动态规划
- 数学之路-分布式计算-disco(3)
- 聚类分析之距离计算
- ubuntu下编译安装boost库
- hdu 4961 Boring Sum 2014 Multi-University Training Contest 9
- JavaScript面向对象编程(4)prototype使用案例:内置对象增强
- java学习day13
- nodejs安装node-inspector报错
- javascript的window.ActiveXObject对象,区别浏览器的方法
- Unix、Minix和Linux
- meta标签中的http-equiv属性使用介绍
- 重装linux,从ubuntu到centos
- EL表达式取servlet中的对象总结