CodeForces346 C. Number Transformation II
来源:互联网 发布:项目数据分析师事务所 编辑:程序博客网 时间:2024/05/08 12:01
C. Number Transformation II
time limit per test
1 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputYou are given a sequence of positive integers x1, x2, ..., xn and two non-negative integers a and b. Your task is to transform a into b. To do that, you can perform the following moves:
- subtract 1 from the current a;
- subtract a mod xi (1 ≤ i ≤ n) from the current a.
Operation a mod xi means taking the remainder after division of number a by number xi.
Now you want to know the minimum number of moves needed to transform a into b.
Input
The first line contains a single integer n (1 ≤ n ≤ 105). The second line contains n space-separated integers x1, x2, ..., xn(2 ≤ xi ≤ 109). The third line contains two integers a and b (0 ≤ b ≤ a ≤ 109, a - b ≤ 106).
Output
Print a single integer — the required minimum number of moves needed to transform number a into number b.
Examples
input
33 4 530 17
output
6
input
35 6 71000 200
output
206
/*CodeForces346 C. Number Transformation II给你两个数a,b1.每次对于当前的a减去12.每次对于当前的a减去 a%(ta[i])求最少多少次能得到b类似于贪心,每次减去尽可能多的值。但是一直TLE- -. 后来可以发现a~a-a%ta[i]的所有值如果减去a%ta[i],都会等于同一个值。 如果当a-a%ta[i] < b时,ta[i]可以说在后面的搜索就没有作用了.于是乎把ta[i]除去.hhh-2016-04-16 17:15:20*/#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <map>#include <algorithm>#include <functional>#include <math.h>using namespace std;#define lson (i<<1)#define rson ((i<<1)|1)typedef long long ll;const int mod = 1000000009;const int maxn = 100040;int ta[maxn];int main(){ int n; while( scanf("%d",&n) != EOF) { int num = 0; int a,b; for(int i =0; i < n; i++) { scanf("%d",&ta[i]); } sort(ta,ta+n); n = unique(ta,ta+n)-ta; scanf("%d%d",&a,&b); while(a > b) { int cur = a - 1; for(int i =n-1; i >= 0; i--) { if(a-a%ta[i] >= b) cur = min(a-a%ta[i],cur); } a = cur; num ++; if(a == b) break; while(n) { if(a-a%ta[n-1] < b) n--; else break; } } printf("%d\n",num); } return 0;}
0 0
- CodeForces346 C. Number Transformation II
- Codeforces 346C Number Transformation II 构造
- codeforces Number Transformation II
- Number Transformation II CodeForces
- CF 251C Number Transformation
- Number Transformation CF 251C
- Codeforces 347E - Number Transformation II
- codeforces 347 E Number Transformation II
- Codeforces Round #201 (Div. 1) C. Number Transformation II(思路)
- codeforces 251C Number Transformation(数论)
- Number Transformation
- Number Transformation
- Number Transformation
- CSUOJ 1299 - Number Transformation II 打表预处理水DP
- Codeforces Round #201 (Div. 2) E - Number Transformation II
- codeforces 251C C. Number Transformation(数论+dp)
- [Codefoces 251C & 252E]Number Transformation dp+循环节
- Codeforces Round #153 (Div. 1) C. Number Transformation
- 图片缩放,多点触摸响应
- 线程之间的通信
- CentOS 7 安装matplotlib
- spring源码剖析(五)利用AOP实现自定义Spring注解
- 在word文档中添加目录(包括项目符号、编号、多级列表使用方法)
- CodeForces346 C. Number Transformation II
- Unity3D学习笔记(7)—— 击球游戏
- 【BC史上最大灾难】一场被我搞砸了的BC
- Hibernate学习总结:OneToOne单向主键关联
- MyEclipse创建JavaWeb应用(配置Tomcat)
- 自己写一个httpclient(一)
- 简谈ready与load的区别
- android 硬件知识-传感器,无线电,和媒体功能的开发
- Vmware安装debian时更换iso文件方法