JZOJ 3.18 1507——【普及模拟】数列
来源:互联网 发布:为什么要使用zepto.js 编辑:程序博客网 时间:2024/05/19 11:17
题目描述
给定一个等差数列,第一项是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≤1012, 1≤d≤105。)
对于80%的数据,1≤upperBound≤1000000。
输出
一个整数,表示“合法”正整数的个数。
样例输入
1 1 1 2 1000
样例输出
1000
题解:
步骤一:先将等差数列的个数求出来。
步骤二:再将等比数列求出来,并存在数组里。
步骤三:扫一遍等比数组,将既是等比的又是等差的去重。
代码如下:
var x,y,q,p,n,s,ss:int64; i:longint; a:array[0..50] of int64;begin assign(input,'shulie.in'); assign(output,'shulie.out'); reset(input); rewrite(output); read(x,y,q,p,n); if n>=x then s:=(n-x) div y+1; if p=1 then if (((q-x) mod y<>0) and (q<=n)) or ((q<x) and (q<=n)) then inc(s) else s:=s else begin ss:=1; a[1]:=q; while a[ss]*p<=n do begin inc(ss); a[ss]:=a[ss-1]*p; end; s:=s+ss; for i:=1 to ss do if (a[i]-x>=0) and ((a[i]-x) mod y=0) then dec(s); end; write(s); close(input); close(output);end.
1 0
- JZOJ 3.18 1507——【普及模拟】数列
- jzoj P1507【普及模拟】数列
- 【普及模拟】数列 (jzoj)
- [数学](JZOJ)【普及模拟】数列
- JZOJ 3.18 1508——【普及模拟】蚂蚁
- JZOJ 3.18 1510——【普及模拟】剪草
- JZOJ 3.18 1509——【普及模拟】单元格
- jzoj 1570. 【普及模拟】射击
- jzoj 1571. 【普及模拟】过河
- jzoj 1579. 【普及模拟】老鼠
- jzoj 1589. 【普及模拟】洗牌
- jzoj 1591. 【普及模拟】游戏
- jzoj P1508【普及模拟】蚂蚁
- jzoj P1510【普及模拟】剪草
- jzoj P1509【普及模拟】单元格
- [模拟](JZOJ)【普及模拟】蚂蚁
- jzoj 1569. 【普及模拟】公共子串
- jzoj 1568. 【普及模拟】石子游戏
- ant
- Genymotion安装及使用教程详解
- JS比较两个日期大小
- DNS基本指南,域名解析,A记录,MX,CNAME,URL Redirect(301),URL frame,ns,TXT Record
- 自定义画图形
- JZOJ 3.18 1507——【普及模拟】数列
- strftime格式代码
- OpenCV-ios开发之一基本配置
- 数字信号处理中卷积的图形化动态解释
- dot.tk+namecheap.com搭建免费顶级域名+快速动态域名+Dns解析
- 26-《电子入门趣谈》第五章_仿真世界里的电子元器件-第一部分-Mutisim简介
- 欢迎使用CSDN-markdown编辑器
- Spring+SpringMVC+Mybatis简单配置和使用
- android 获取手机品牌