XDOJ_1011_规律

http://acm.xidian.edu.cn/problem.php?id=1011

看到别人都是几msAC,怀疑是有公式,于是推了好久好久的公式,就是没有思绪。

最后输出了一下答案找规律,发现是3奇5偶7奇9偶这样的规律下去,在前面加个1刚好可以凑成完全平方数,于是就简单了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int sum[1000005];
int main()
{
    for(int i = 1;i <= 1000000;i++)
    {
        for(int j = i;j <= 1000000;j += i)    sum[j]++;
    }
    for(int i = 2;i <= 1000000;i++)    sum[i] = (sum[i]+sum[i-1])%1007;
    for(int i = 2;i <= 1000000;i++)    sum[i] = (sum[i]+sum[i-1])%1007;
    int a,b;
    while(~scanf("%d%d",&a,&b))    printf("%d\n",(sum[b]-sum[a-1]+1007)%1007);
    return 0;
}
时间: 2024-10-08 16:59:59

XDOJ_1011_规律的相关文章

The Cow Lineup_找规律

Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled with a number in the range 1...K (1 <= K <=10,000) identifying her breed. For example, a line of 14 cows might have these breeds: 1 5 3 2 5 1 3 4 4

初二|两级分化时期,你的学习规律养成了吗?

初中数学, 在初中养成良好的学习习惯有助于高中系统性学习,那么你初中的学习规律养成了吗?俗话说,初一不分上下,初二两级分化,初三天上地下,为什么会如此分,我们一起来了解一下. 1 从知识层面讲,初二所学的科目内容多,难度大. 初一我们所学的知识还是蛮多的,而且这些知识都是我们整个初中所学知识的基础部分.基本概念和基本定理比较多,需要记忆的东西也比较多,但是知识的难度都不是很大,而到了初二,数学知识点和难度都有了大幅度的提升,尤其是几何辅助线的大量涉及使很多同学很难适应,摸不着头脑,分式根式的加入

Codeforces 57C Array dp暴力找到规律

主题链接:点击打开链接 的非增量程序首先,计算, 如果不增加的节目数量x, 非减少一些方案是x 答案就是 2*x - n 仅仅需求得x就可以. 能够先写个n3的dp,然后发现规律是 C(n-1, 2*n-1) 然后套个逆元就可以. #include<iostream> #include<cstdio> #include<vector> #include<string.h> using namespace std; #define ll long long #

UVA 10479 The Hendrie Sequence 规律

题目大意:一个序列,刚开始由0变到了1,接着往后一个个变化下去 变化的规则是,如果当前数是k,就在这个序列的最后面加上k-1个0,再加上k+1 现在问这个序列的第n个数是多少 解题思路:这是有规律的,第2的k次方个数刚好是k 如果当前数是k,且k刚好是2的n次方,那么这个数前面就有n-1个0,n-2个1,n-3个02组合,以此类推 如果要求第n个数是多少,只需要找到n是哪个k之前的,然后依照上面的规律依次递归下去即可 #include<cstdio> #include<cstring&g

51nod 1161 组合数,规律

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1161 显然,题目可以转化为矩阵求解,但复杂度显然时空都不允许,我们如果自己把这个N*N矩阵的前几项列出来的话就会发现和杨辉三角的某一部分相似, 对照一下发现这个矩阵的第一行对应的就是杨辉三角的某一斜列,依次向下递减,也就是说我们只要知道这几个组合数,就能推导出来这个矩阵. 对于每一个K,对应的矩阵首行元素就是 :  C(k-1,0),C(k,1),C(k+1,2)...

HDU 6121 Build a tree(找规律+模拟)

Build a tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 946    Accepted Submission(s): 369 Problem Description HazelFan wants to build a rooted tree. The tree has n nodes labeled 0 to n−1

HDU - 4112 Break the Chocolate(规律)

题意:有一块n*m*k的巧克力,最终需要切成n*m*k个1*1*1的块,问用以下两种方法最少掰多少次能达到目的: 1.用手掰:每次只能拿出一块来掰:2.用刀切:可以把很多已经分开的块摞在一起一刀切下来 分析: 1.用手掰,需要n*m*k-1次. 2.用刀切,可以分别考虑长宽高,计算长宽高分别切成单位长度所需要的最少次数,相加即可. 二分切,可得最少次数.规律为,长度为x最少需切ceil(log2(x))次. #include<cstdio> #include<algorithm>

CodeForces 776E 数学规律,欧拉

CodeForces 776E 题意:定义f(n)为(x,y)的对数,x和y要满足 x>0, y>0, x+y=n, x与y互质. 定义g(n)为f(x1)+f(x2)+......+f(xk),xi为n的因子. 再定义Fk(n)为     给定n和k,求Fk(n). tags: 好假的题..推理或者找规律,f(n)=phi(n), g(n)=n... #include<bits/stdc++.h> using namespace std; #pragma comment(link

HDU 2502 月之数(二进制,规律)

月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10273    Accepted Submission(s): 6003 Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数为n(不包含前