LightOJ 1141 Program E
Description
In this problem, you are given an integer number s. You can transform any integer number A to another integer number B by adding x to A. This x is an integer number which is a prime factor of A (please note that 1 and A are not being considered as a factor of A). Now, your task is to find the minimum number of transformations required to transform s to another integer number t.
Input
Input starts with an integer T (≤ 500), denoting the number of test cases.
Each case contains two integers: s (1 ≤ s ≤ 100) and t (1 ≤ t ≤ 1000).
Output
For each case, print the case number and the minimum number of transformations needed. If it's impossible, then print -1.
Sample Input
2
6 12
6 13
Sample Output
Case 1: 2
Case 2: -1
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include <queue>
- #include <cmath>
- using namespace std;
- #define MAX 0x3f3f3f3f
- typedef struct{
- int step;
- int now;
- }Node;
- int s, t;
- bool prime[1010];
- int marks[1001];
- int BFS(){
- queue<Node> q;
- Node start;
- start.now = s;
- start.step = 0;
- q.push( start );
- memset( marks, 0x3f, sizeof( marks ) );
- int ans = MAX;
- while( !q.empty() ){
- Node n = q.front();
- q.pop();
- if( n.now == t ){
- ans = min( ans, n.step );
- continue;
- }
- for( int i = 2; i < n.now; i++ ){
- if( n.now % i != 0 || !prime[i] ){
- continue;
- }
- if( n.now + i > t ){
- continue;
- }
- if( marks[n.now+i] > n.step + 1 ){
- Node temp;
- temp.now = n.now + i;
- temp.step = n.step + 1;
- marks[n.now+i] = temp.step;
- q.push( temp );
- }
- }
- }
- if( ans < MAX ){
- return ans;
- }
- return -1;
- }
- int main(){
- int T, Case = 1;
- memset( prime, true, sizeof( prime ) );
- for( int i = 2; i <= 1000; i++ ){
- for( int j = 2; i * j <= 1000; j++ ){
- prime[i*j] = false;
- }
- }
- cin >> T;
- while( T-- ){
- cin >> s >> t;
- cout << "Case " << Case++ << ": " << BFS() << endl;
- }
- return 0;
- }
LightOJ 1141 Program E的更多相关文章
- LightOJ 1141 Number Transformation
Number Transformation In this problem, you are given an integer number s. You can transform any inte ...
- ****ural 1141. RSA Attack(RSA加密,扩展欧几里得算法)
1141. RSA Attack Time limit: 1.0 secondMemory limit: 64 MB The RSA problem is the following: given a ...
- LightOj:1030-Discovering Gold(期望dp模板)
传送门:http://www.lightoj.com/volume_showproblem.php?problem=1030 Discovering Gold Time Limit: 2 second ...
- 九度OJ 1141:Financial Management (财务管理) (平均数)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:939 解决:489 题目描述: Larry graduated this year and finally has a job. He's ...
- [project euler] program 4
上一次接触 project euler 还是2011年的事情,做了前三道题,后来被第四题卡住了,前面几题的代码也没有保留下来. 今天试着暴力破解了一下,代码如下: (我大概是第 172,719 个解出 ...
- Solved: “Cannot execute a program. The command being executed was \roslyn\csc.exe”
When you publish your ASP.NET project to a hosting account such as GoDaddy, you may run into the iss ...
- 区间DP LightOJ 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...
- 关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...
在 GCC ARM Embedded https://launchpad.net/gcc-arm-embedded/ 上面下载了个arm-none-eabi-gcc 用cmake 编译时 #指定C交叉 ...
- c中使用gets() 提示warning: this program uses gets(), which is unsafe.
今天在C代码中使用gets()时提示“warning: this program uses gets(), which is unsafe.”,然后这个程序还能运行,无聊的我开始查阅资料,为啥gets ...
随机推荐
- oracle中修改表名
<<<备忘>>> answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令) ...
- 【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】
原文:http://www.2cto.com/Article/201511/451757.html 1. 什么是webshell? 基于b/s架构的软件部署在Internet上,那么安全性是必 ...
- 在linux(CentOS-6.7_x86_64)上安装mysql成功记录
查看linux服务器的yum源设置: [root@hadoop03 yum.repos.d]# cd /etc/yum.repos.d [root@hadoop03 yum.repos.d]# ll ...
- linux下动态链接库.so文件 静态链接库.a文件创建及使用
转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲: ...
- 修改Mac]Bringing interface etch0:Device
OS版本:Red Hat Enterprise Linux AS4/5 网上有很多关于linux下修改MAC地址的方法,大多依葫芦画瓢,似乎都没验证过,达不到修改的目的. 经过我的详细测试,最终成功解 ...
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
原文过于冗余,精读后做了部分简化与测试实践,原文地址:http://www.j2megame.com/html/xwzx/ty/2571.html http://www.cnblogs.com/z ...
- OneProxy读写分离配置操作手册
1.确保已配置好主备集群 A)配置 可参考MySQL官方文档(https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html) 或者我的博 ...
- controller 监控Unix性能信息
linux系统需要有RPC(Remote Procedure Call Protocol),远程过程调用协议,通过安装rpc.rstatd程序,启动其服务,就可以给远程机器提供信息,即Lr可以获取到该 ...
- decorators.xml的用法 (转)
spring,hibernate框架做的,对了,还有jQuery. 我用jquery做异步请求到后台,生成json数据返回前台生成下拉输入框,请求到后台以后,成功生成了json数据并根据struts的 ...
- script "text/template"
<script type="text/template" id="orgItem"> <div class="{orgClass}& ...