Description

给出一个区间[L,R][L,R],问该区间中所有以KK作为最小因子(大于11的)的数字之和

Input

第一行输入一整数TT表示用例组数,每组用例输入三个整数L,R,KL,R,K(1≤L≤R≤1011,2≤K≤1011)(1≤L≤R≤1011,2≤K≤1011)
Output

对于每组用例,输出答案,结果模109+7109+7
Sample Input

2
1 20 5
2 6 3

Sample Output

Case #1: 5
Case #2: 3

先放网上的通解,就是大致的思路。

看题解看的心累。
然后是我写的题解:

然后是代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mod 1000000007
#define inv2 500000004
const int  Max=320000,Max_R=14000,cnt=5000;
int tot=0,p[Max+5],flag[Max+5],dp[Max_R+5][cnt+5];
int ins(int x,int y) //防溢出加法
{return x+y>=mod?x+y-mod:x+y;
}
int des(int x,int y)//防溢出减法
{return x-y<0?x-y+mod:x-y;
}
void init()
{for(int i=2;i<=Max;i++)if(!flag[i]){p[++tot]=i;for(int j=2*i;j<=Max;j+=i)flag[j]=1;}dp[0][0]=0;for(int i=1;i<=Max_R;i++){dp[i][0]=ins(dp[i-1][0],i);for(int j=1;j<=cnt;j++)dp[i][j]=des(dp[i][j-1],(ll)p[j]*dp[i/p[j]][j-1]%mod);}
}
bool check(ll n)//素数检测
{for(int i=1;i<=tot&&(ll)p[i]*p[i]<=n;i++)if(n%p[i]==0)return 0;return 1;
}
int DFS(ll n,int m)
{if(n<2)return n;if(m==0){n%=mod;return n*(n+1)%mod*inv2%mod;}if(n<=Max_R&&m<=cnt)return dp[n][m];//在IJ区间可以直接出答案if(n<=p[m])return 1;return des(DFS(n,m-1),(ll)p[m]*DFS(n/p[m],m-1)%mod);//不在IJ区间不能直接出答案
}
int main()
{init();int T,Case=1,pos;scanf("%d",&T);while(T--){ll L,R,K;scanf("%I64d%I64d%I64d",&L,&R,&K);printf("Case #%d: ",Case++);if(!check(K))printf("0\n");else if(K>Max){if(K>=L&&K<=R)printf("%d\n",K%mod);else printf("0\n");}else{for(pos=1;p[pos]<K;pos++);pos--;int ans=des(K*DFS(R/K,pos)%mod,K*DFS((L-1)/K,pos)%mod);printf("%d\n",ans);}}return 0;
}

数学--数论--HDU6919 Senior PanⅡ【2017多校第九场】相关推荐

  1. 2019牛客多校第九场AThe power of Fibonacci(广义BM)

    2019牛客多校第九场AThe power of Fibonacci(广义BM) 题目大意 求斐波那契数列m次方的前n项和 解题思路 显然,斐波那契的m次方前缀和依然是线性递推,因此考虑用exBM求解 ...

  2. 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)

    咕咕咕了太久  多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场-- 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...

  3. hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】

    题目链接 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和.反过来思考只需要求有多少条路径没有经过这种颜色即可. 具体实现过程比较复杂,很神奇的一个树形dp,下面给出一个含较详细 ...

  4. 多校第九场总结,树剖

    http://bestcoder.hdu.edu.cn/blog/ 02 官方题解 由于没有修改操作,一个显然的想法是离线处理所有问题 将询问拆成1-x,1-y,1-LCA(x,y),则处理的问题转化 ...

  5. Cutting Bamboos(牛客多校第九场H主席树+二分+思维)

    链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 There are n bamboos arranged in a line. The i-th ...

  6. Quadratic equation(二次剩余)2019牛客多校第九场

    链接:https://ac.nowcoder.com/acm/contest/889/B 来源:牛客网 题目描述 Amy asks Mr. B problem B. Please help Mr. B ...

  7. 2021HDU多校第九场1008HDU7073 Integers Have Friends 2. 随机化

    HUD地址:https://acm.hdu.edu.cn/showproblem.php?pid=7073  题目大意:选择数组中最多的数,使得他们模m同余(m>=2).求最大的数量. 思路:然 ...

  8. 2019杭电多校第九场 Rikka with Cake (hdu6681)

    题意:给出一个n * m的蛋糕,切 k 刀,每次从一个点(x,y)向 上下左右的一个方向切,问最后蛋糕被切成了几块 题解:显然,蛋糕的块数就是那么多线段的交点数 + 1.先离散,考虑向左切和向上切的, ...

  9. 2019牛客多校第九场 H Cutting Bamboos (二分主席树)

    看到题解说二分 心里也有数了..... H Cutting Bamboos 给了一些高度得柱子 每区间你可以坎y次 y次之后 必须砍没有了 没有砍 总长度得一样 问第x次砍得高度在哪里 因为砍得次数 ...

最新文章

  1. Rushcrm:企业部署CRM系统做什么
  2. 【c++】25.事件驱动的详解
  3. NUTCH的安装与测试
  4. zz JNI学习(一)、JNI简介和HelloWorld示例
  5. 利用计算机测地震是计算机的什么,计算机在气象预报、地震探测、导弹卫星轨迹等方面的应用都属于( )...
  6. python json loads 中文乱码_python实现智能语音天气预报
  7. 序列类型python
  8. android gps转换度分秒,如何将GPS数据转换为度分秒
  9. cocos2dx进阶学习之屏幕适配
  10. 面试题大全-操作系统面试题
  11. java 机器学习库_7个最好的Java机器学习开发库
  12. Pr效果:音频过渡效果
  13. ORACLE 11G使用exp或者pl/sql导出空表
  14. 路飞学城Python-Day1
  15. 人民币转大写 java_把数字转换成人民币大写的形式
  16. 震惊~~飞流android版使用体验!!
  17. 互联网快讯:微信上线“仅传输文件”新功能;极米RS Pro 2获用户肯定;网宿科技与奇安信达成战略合作
  18. 【旧文回顾】中国太阳能因制造业创新而繁荣
  19. 中国人民银行招聘计算机水平,2019中国人民银行招聘计算机模拟试题及答案
  20. 高德公布2016年度交通报告:十大堵城上榜

热门文章

  1. 计算机网络 鲁士文,《在职研究生计算机网络课程统考复习指南》鲁士文 编_孔网...
  2. 微型计算机开机密码丢失,校诡实录微机教室攻略 电脑密码是多少[多图]
  3. iphone ios编译ffmpeg
  4. selenium对富文本的操作
  5. docker第二天:管理docker镜像与容器(上)
  6. 利用SharedPreferences完成记住账号密码的功能
  7. svn显示html,而不是源代码
  8. SaaS风暴:中国软件企业如何应对挑战?
  9. JS跳转手机QQ的聊天页面
  10. oracle统计每日归档大小,Oracle查询最近几天每小时归档日志产生数量的脚本写法...