简单的求和(打表)

简单的求和

Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 130  Solved: 20
SubmitStatusWeb Board

Description

定义f(i)代表i的所有因子和(包括1和i),给定一个l,r。求f(l)+f(l+1)+...+f(r)。

Input

第一行输入一个t(t<1000),代表有t组测试数据,接下来每行输入两个数字l,r,(1<=l<=r<=1000000)。

Output

每行输出一个整数,代表和。

Sample Input

2 1 2 3 4

Sample Output

4 11

题解:看见没有,这就叫前缀和

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
typedef long long LL;
const int MAXN=1000010;
LL dp[MAXN];
int main(){
	mem(dp,0);
	dp[1]=1;
	for(int i=2;i<=500005;i++){
		for(int j=i+i;j<MAXN;j+=i){
			dp[j]+=i;
		}
	}
	for(int i=2;i<MAXN;i++)dp[i]=dp[i]+dp[i-1]+i+1;
	int t,l,r;
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&l,&r);
		printf("%lld\n",dp[r]-dp[l-1]);
	}
	return 0;
}

  

时间: 2024-10-29 19:09:47

简单的求和(打表)的相关文章

(打表+优化)简单的求和 -- zzuli -- 1783

http://acm.zzuli.edu.cn/problem.php?id=1783 1783: 简单的求和 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 170  Solved: 31 SubmitStatusWeb Board Description 定义f(i)代表i的所有因子和(包括1和i),给定一个l,r.求f(l)+f(l+1)+...+f(r). Input 第一行输入一个t(t<1000),代表有t组测试数据,接下来每行输入两个数

zzuli1783: 简单的求和---求因子和

1783: 简单的求和 Description 定义f(i)代表i的所有因子和(包括1和i),给定一个l,r.求f(l)+f(l+1)+...+f(r). Input 第一行输入一个t(t<1000),代表有t组测试数据,接下来每行输入两个数字l,r,(1<=l<=r<=1000000). Output 每行输出一个整数,代表和. Sample Input 2 1 2 3 4 Sample Output 4 11 #include <iostream> #include

利用js的for循环实现一个简单的“九九乘法表”

For循环九九乘法表 for循环是javascript中一种常用的循环语句,可以很好的解决在程序中需要重复执行某些语句,利用for循环实现简单的“九九乘法表”的效果: 让循环从小到大,依次排序,并计算每次的结果,并用 table 使之排列出来. <script type="text/javascript"> document.write('<table border="1">'); //以表格规格打印 for(var i=1;i<=9;

打印简单公司员工信息表

要求,输入name不为空,输入次数最多3次,3次后跳出程序: 知识点: raw_input str转int whil if elif else continue break for 导入模块 引用变量值 格式化输出 vim #!/usr/bin/env python import sys user_name = "carson" this_year = 2014 counter  = 0 while True:     if counter < 3:         name =

jsp简单练习-简单的下拉表单

<%@ page contentType="text/html; charset=gb2312" %> <html> <body> <form name="form1" action="SwitchApp.jsp" method="post"> 请选择一种颜色: <select name="ys"> <option value="r

利用for循环制作简单的99乘法表

利用for循环制作简单的99乘法表 public class chengfabiao { public static void main(String[] args) { for(int a = 1;a <= 9;a++) { for(int b = 1; b <= a;b++) { int res = a * b; System.out.print("["+a+"x"+b+"="+res+"]"); } Syst

PHP简单利用token防止表单重复提交

<?php /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; set_token(); retur

F#之旅3 - F# PK C#:简单的求和

原文链接:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/fvsc-sum-of-squares.html Comparing F# with C#: A simple sumF# PK C#:简单的求和 To see what some real F# code looks like, let's start with a simple problem: "sum the squares from 1 to N

JSP简单练习-EL获取表单数据

输入用户名和密码的界面: <%@ page language="java" contentType="text/html;charset=gb2312" %> <script type="text/javascript"> function on_submit() { if(form1.username.value=="") { alert("用户名不能为空!"); // 自动把焦点