zzulioj1783简单的求和
2016-05-16 13:35
302 查看
暴力求解肯定会超时,刚开始写时候怎么也想不到优化方案,看了看大神们写的后才知道原来还可以这样采取空间换时间。类似与素数筛选法的思想,然后打表就可以了= =
代码如下:
代码如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> long long sum[1000010]; long long pp()//核心代码 { int i,j; sum[1]=1; for(i=2; i<=500000; i++) for(j=i*2; j<1000010; j+=i) sum[j]+=i; for(i=2;i<1000010;i++) sum[i]=sum[i-1]+(sum[i]+i+1); } int main() { int l,r,t; pp(); scanf("%d",&t); while(t--) { scanf("%d%d",&l,&r); printf("%lld\n",sum[r]-sum[l-1]); } return 0; }注意类型问题防止溢出就可以了= =
相关文章推荐
- AFN 与 ASI 有什么区别
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- Spark性能优化第七季之Spark 钨丝计划
- 什么是linux下的checkpoint/restore
- 开博记录
- Oracle 软件及静默安装数据库
- DNS域名服务及搭建缓存DNS服务器详解(2)
- java 中的动态代理
- django访问sqlserver2000——使用django-pyodbc
- windows平台下Tuxedo应用simpapp编译失败问题解析
- 什么是Java反射
- Mysql数据库事务在jdbc中的用法
- 用mycat做读写分离:基于 MySQL主从复制
- centos7 docker 存储使用 overlay,添加标签
- 大一下学期做的一个飞机游戏(JAVA)
- Eclipse下Tomcat使用相关
- AlertDialog 简单自定义
- [绍棠] iOS开发:获取设备IP地址
- 一个元素绑定多个点击事件
- 用Shell命令批量解压一个目录下分卷的压缩包到指定目录