当前位置:首页 > 题解目录 > 正文内容

【题解】区间和

亿万年的星光5年前 (2021-05-01)题解目录22801

1.区间和(sum.cpp)

【描述】

输入一个整数Q,进行Q次询问,每次给定两个整数lr每一次输出lr中所有平方数的和 % 1000000007

【输入】

第一行是一个整数Q

后面的Q行每行有2个数字lr

【输出】

Q行,每行一个整数。

【样例输入输出】

light.in

light.out

2

2   10

3   100

13

384

 

【数据范围】

40%的数据:Q<=1000,l<=r<=1000

80%的数据:Q<=1000,l<=r<=1e6

100%的数据: Q<=1e6,l<=r<=1e6

【题目分析】

  • 用到了一点数论的知识,题目范围比较大的时候考虑使用(a*b)%p =(a%p *b%p)%p

  • “平方数”的意思就是两个一样的数的积。即a*a=b。那么b就是一个平方数


【参考答案1】

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int Q;
    long long int l, r, sum;//输入左边界右边界,防止int 不够
    int ans;
    cin>>Q;
    for(int i=0; i<Q; i++)
    {
        cin>>l>>r;//平方数所在范围
        sum = 0;//每次都得初始化
        long long  temp;
        for (int i = l; i <= r; i++)//判断平方数
        {
   temp = sqrt(i);
   if (temp * temp == i)
    sum += temp * temp;
        }
        ans = sum%1000000007;
        cout<<ans<<endl;


    }
    return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

标签: 模拟数论
分享给朋友:

相关文章

【题解】打击犯罪

【题目描述】某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就...

【题解】取数

【题目描述】设有N 个正整数(1 <= N <= 50),其中每一个均是大于等于1、小于等于300的数。从这N个数中任取出若干个数(不能取相邻的数),要求得到一种取法,使得到的和为最大。例...

【题解】均分蛋糕

【题解】均分蛋糕

【题目描述】小明的生日要到了!根据习俗,他需要将一些派分给大家。他有 N 个不同口味、不同大小的派。有 F 个朋友会来参加我的派对,每个人会拿到一块派(必须一个...

【题解】柠檬水找零

【题目描述】在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你...

【题解】零花钱

零花钱(money.cpp) 【问题描述】 商店里有一件玩具,今天你偶然得知:这件玩具在后⾯的n天里每天的定价(价格可能每天都会改 变),你买了这件玩具后可以以当天的价格卖给商店,...

【题解】红与黑

【题解】红与黑

【题目描述】有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。【输入】包括多组数据。每...