2017.03.18【NOIP 普及组】模拟赛C组 数列 题解
来源:互联网 发布:linux mount 共享目录 编辑:程序博客网 时间:2024/06/05 15:55
原题:
http://172.16.0.132/junior/#contest/show/1376/0
题目描述:
给定一个等差数列,第一项是a, 从第二项开始,每项与前一项的差都是一个定值b。如果用数学形式来表示,那么可以表示成 a + b × x , 其中 x≧0,且是整数。例如: a = 1, b=2, 那么这个等差数列就是:1,3,5,7,9…
再给定一个等比数列,第一项是c, 从第二项开始,每项是前一项的d倍。如果用数学形式来表示等比数列,则是 c ×(dy)。 其中 y≧0, 且是整数。例如: c = 2, d = 3, 那么这个等比数列就是:2,6,18,54…
你的任务是计算在1至upperBound内的正整数,有多少正整数是“合法”的?
所谓的“合法”是指:该整数属于上面给定的等差数列的某项或者属于等比数列的某项,或者既属于等差数列的项也属于等比数列的项。
输入:
一行,5个整数,分别是a,b,c,d,upperBound。
(1≤a,b,c,upperBound≤10^12, 1≤d≤10^5。)
对于80%的数据,1≤upperBound≤1000000。
输出:
一个整数,表示“合法”正整数的个数。
输入样例:
输入样例1:
1 1 1 2 1000
输入样例2:
3 3 1 2 1000
输入样例3:
452 24 4 5 600
输出样例:
输出样例1:
1000
输出样例2:
343
输出样例3:
10
样例解释:
样例1解释:
产生的等差数列是:1,2,3,4,….
产生的等比数列是:1,2,4,8,….
所以【1,1000】范围内所有正整数都是“合法”的。
样例3解释:
“合法”的10个数分别是: 4,20,100,452,476,500,524,548,572,596
分析:
先算出等差数列的项数:ans:=(u-a)div b+1
枚举等比数列,判断是否在等差数列中出现过:if((t-a)mod b<>0)or(t-a<0)then inc(ans);
实现:
var ans,a,b,c,d,u,t,i:int64;begin assign(input,'shulie.in');reset(input); assign(output,'shulie.out');rewrite(output); readln(a,b,c,d,u); if a<u then ans:=(u-a)div b+1; if c<u then begin t:=c; while true do begin if((t-a)mod b<>0)or(t-a<0)then inc(ans); t:=t*d; if(t=c)or(t>u)then break; end; end; writeln(ans); close(input);close(output);end.
- 2017.03.18【NOIP 普及组】模拟赛C组 数列 题解
- 2017.03.18【NOIP 普及组】模拟赛C组 蚂蚁 题解
- 2017.03.18【NOIP 普及组】模拟赛C组 单元格 题解
- 2017.03.18【NOIP 普及组】模拟赛C组 剪草 题解
- 2017.08.06【NOIP 普及组】模拟赛C组题解
- 2016.07.18【初中部 NOIP普及组 】模拟赛题解
- 2016.08.18【初中部 NOIP普及组 】模拟赛题解
- 2016.08.18【初中部 NOIP普及组 】模拟赛题解
- 2017.03.18【NOIP 普及组】模拟赛C组
- 2017.03.10【NOIP 普及组】模拟赛C组 三条直线Three lines 题解
- 2017.03.10【NOIP 普及组】模拟赛C组 岛屿Islands 题解
- 2017.03.25【NOIP 普及组】模拟赛C组 排序(sort) 题解
- 2017.03.25【NOIP 普及组】模拟赛C组 求和(sum) 题解
- 2017.03.25【NOIP 普及组】模拟赛C组 数数(count) 题解
- 2017.03.25【NOIP 普及组】模拟赛C组 步行(walk) 题解
- 2016.08.19【初中部 NOIP普及组 】模拟赛题解
- 2016.08.19上午【初中部 NOIP普及组 】模拟赛题解
- 2016.08.19上午【初中部 NOIP普及组 】模拟赛题解
- jenkins+maven 多模块编译注意事项
- Python之一基本数据类型
- QWidget不显示的问题
- 根据Interceptor 分析 OkHttp(二)
- 引包的时候发生错误教程
- 2017.03.18【NOIP 普及组】模拟赛C组 数列 题解
- 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
- jQuery的Ajax方法注意事项
- Android单元测试(四):Mock以及Mockito的使用
- html marquee属性
- C++ 冒泡排序算法的实现与改进(含笔试面试题)
- 包含多个段的程序
- 队列的链式存储操作
- 用一个for循环打印出一个二维数组