数学--数论--HDU6919 Senior PanⅡ【2017多校第九场】
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多校第九场】相关推荐
- 2019牛客多校第九场AThe power of Fibonacci(广义BM)
2019牛客多校第九场AThe power of Fibonacci(广义BM) 题目大意 求斐波那契数列m次方的前n项和 解题思路 显然,斐波那契的m次方前缀和依然是线性递推,因此考虑用exBM求解 ...
- 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)
咕咕咕了太久 多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场-- 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...
- hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】
题目链接 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和.反过来思考只需要求有多少条路径没有经过这种颜色即可. 具体实现过程比较复杂,很神奇的一个树形dp,下面给出一个含较详细 ...
- 多校第九场总结,树剖
http://bestcoder.hdu.edu.cn/blog/ 02 官方题解 由于没有修改操作,一个显然的想法是离线处理所有问题 将询问拆成1-x,1-y,1-LCA(x,y),则处理的问题转化 ...
- Cutting Bamboos(牛客多校第九场H主席树+二分+思维)
链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 There are n bamboos arranged in a line. The i-th ...
- Quadratic equation(二次剩余)2019牛客多校第九场
链接:https://ac.nowcoder.com/acm/contest/889/B 来源:牛客网 题目描述 Amy asks Mr. B problem B. Please help Mr. B ...
- 2021HDU多校第九场1008HDU7073 Integers Have Friends 2. 随机化
HUD地址:https://acm.hdu.edu.cn/showproblem.php?pid=7073 题目大意:选择数组中最多的数,使得他们模m同余(m>=2).求最大的数量. 思路:然 ...
- 2019杭电多校第九场 Rikka with Cake (hdu6681)
题意:给出一个n * m的蛋糕,切 k 刀,每次从一个点(x,y)向 上下左右的一个方向切,问最后蛋糕被切成了几块 题解:显然,蛋糕的块数就是那么多线段的交点数 + 1.先离散,考虑向左切和向上切的, ...
- 2019牛客多校第九场 H Cutting Bamboos (二分主席树)
看到题解说二分 心里也有数了..... H Cutting Bamboos 给了一些高度得柱子 每区间你可以坎y次 y次之后 必须砍没有了 没有砍 总长度得一样 问第x次砍得高度在哪里 因为砍得次数 ...
最新文章
- Rushcrm:企业部署CRM系统做什么
- 【c++】25.事件驱动的详解
- NUTCH的安装与测试
- zz JNI学习(一)、JNI简介和HelloWorld示例
- 利用计算机测地震是计算机的什么,计算机在气象预报、地震探测、导弹卫星轨迹等方面的应用都属于( )...
- python json loads 中文乱码_python实现智能语音天气预报
- 序列类型python
- android gps转换度分秒,如何将GPS数据转换为度分秒
- cocos2dx进阶学习之屏幕适配
- 面试题大全-操作系统面试题
- java 机器学习库_7个最好的Java机器学习开发库
- Pr效果:音频过渡效果
- ORACLE 11G使用exp或者pl/sql导出空表
- 路飞学城Python-Day1
- 人民币转大写 java_把数字转换成人民币大写的形式
- 震惊~~飞流android版使用体验!!
- 互联网快讯:微信上线“仅传输文件”新功能;极米RS Pro 2获用户肯定;网宿科技与奇安信达成战略合作
- 【旧文回顾】中国太阳能因制造业创新而繁荣
- 中国人民银行招聘计算机水平,2019中国人民银行招聘计算机模拟试题及答案
- 高德公布2016年度交通报告:十大堵城上榜
热门文章
- 计算机网络 鲁士文,《在职研究生计算机网络课程统考复习指南》鲁士文 编_孔网...
- 微型计算机开机密码丢失,校诡实录微机教室攻略 电脑密码是多少[多图]
- iphone ios编译ffmpeg
- selenium对富文本的操作
- docker第二天:管理docker镜像与容器(上)
- 利用SharedPreferences完成记住账号密码的功能
- svn显示html,而不是源代码
- SaaS风暴:中国软件企业如何应对挑战?
- JS跳转手机QQ的聊天页面
- oracle统计每日归档大小,Oracle查询最近几天每小时归档日志产生数量的脚本写法...