ZR#1012
## ZR#1012
blog咕咕咕了好久,开始补。
解法:
一个很显然的性质, $ x $ 只能转移到 $ x+1 $ 或者 $ 2x $ 处,所以我们可以以此性质建图,即 $ x $ 向 $ x + 1 $ 和 $ 2x $ 处连边,然后跑一遍SPFA就行了,建图过程详见代码。
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
#define INF 2147483647
const int N = 1e6 + 100;
int dis[N],x,n;
bool vis[N];
queue<int> q;
inline void calc(int v,int u,int val) {
if(dis[v] > dis[u] + val) {
dis[v] = dis[u] + val;
if(!vis[v]) q.push(v),vis[v] = true;
}
}
inline void spfa() {
while(!q.empty()) {
int v = q.front();
q.pop();
if(v < n) calc(v + 1,v,1);
if(v > 0) {
calc(v - 1,v,1);
for(int i = 1 ; v * i <= n ; i++) {
if(v * (i + 1) > n) calc(n,v,2 * i + 4 + v * (i + 1) - n);
else calc(v * (i + 1),v,2 * i + 4);
}
}
vis[v] = false;
}
}
int main() {
scanf("%d%d",&x,&n);
for(int i = 0 ; i <= n ; i++) dis[i] = INF;
if(x > n) {
dis[0] = 3,dis[n] = x - n;
vis[x] = vis[n] = vis[0] = true;
q.push(0);
q.push(n);
} else {
dis[x] = 0;
vis[x] = 1;
q.push(x);
}
spfa();
printf("%d\n",dis[n]);
//system("pause");
return 0;
}
ZR#1012的更多相关文章
- BZOJ 1012 题解
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 8468 Solved: 3702[Submi ...
- LightOJ 1012 简单bfs,水
1.LightOJ 1012 Guilty Prince 简单bfs 2.总结:水 题意:迷宫,求有多少位置可去 #include<iostream> #include<cstr ...
- 关于https的Error:Error Domain=NSURLErrorDomain Code=-1012
昨天闲着没事就随便搞点demo,随便找了一个https的接口,运行之后,一直发现Error Domain=NSURLErrorDomain Code=-1012.好奇怪,请求https的配置我基本都配 ...
- 【wikioi】1012 最大公约数和最小公倍数问题
题目链接 算法:辗转相除(欧几里得) gcd(a, b)是a和b最小公倍数, lcm(a, b)是a和b的最大公倍数 gcd(a, b) == gcd(b, a%b) 时间复杂度: O(lgb) 具体 ...
- 【BZOJ】1012: [JSOI2008]最大数maxnumber(树状数组+rmq)
http://www.lydsy.com/JudgeOnline/problem.php?id=1012 树状数组原来我只懂得sum和add的操作,今天才知道可以有求区间最值的操作,我学习了一下写了个 ...
- 1012 最小公倍数LCM
1012 最小公倍数LCM 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...
- PAT乙级 1012. 数字分类 (20)
1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...
- POJ 1012 Joseph 推导,暴力,约瑟夫环,打表 难度:2
http://poj.org/problem?id=1012 答案以954ms飘过,不过这道题可以轻松用打表过 思路:如果我们把每个人位于数组中的原始编号记为绝对编号,每次循环过后相对于绝对编号为0的 ...
- bzoj 1012 [JSOI2008]最大数maxnumber
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1012 线段树,单点更新.. #include<algorithm> #incl ...
随机推荐
- python 基础(实例1——登陆小游戏)
一个简单的登陆小游戏,输入用户名和密码,如果和user_passwd.txt中内容匹配,则打印“welcome to login...”,如果三次输入错误则将该用户列入黑名单,无法再用该用户名登陆. ...
- 删除注册在Eureka的服务(无效,多余)
例子:http://140.143.67.146:8000/eureka/eureka/apps/ZKR-PRODUCT/172.21.0.10:zkr-product:6868 Request Me ...
- CSS 实现盒子水平居中、垂直居中和水平垂直居中的方法
CSS 实现盒子模型水平居中 水平居中效果图如下: HTML: CSS 全局样式: 方法一:使用margin: 0 auto;(只适用于子盒子有宽的时候) 方法二:text-align + disp ...
- Java 之 数据库连接池
一.数据库连接池 1.连接池概念 连接池其实就是一个容器(集合),存放数据库连接的容器. 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问之 ...
- 隐藏Apache版本号及版本敏感信息
在安装软件前,我们需要隐藏软件的版本号及版本其他信息,这样就大大提高了安全指数. 只隐藏版本号: 我们在主配置文件里:httpd.conf [root@bqh- ~]# curl -i bbs.bqh ...
- Linux下用的脚本
http://blog.itpub.net/29510932/viewspace-1166603/ 批量启动Tomcat 点击(此处)折叠或打开 #!/bin/bash #JDK路径 export J ...
- [daily][qemu][kvm] 使用qemu/kvm模拟numa节点
qemu的配置参数又复杂又难用,man手册写的也是非常对付,很多信息都没有. 而且,竟然遗弃掉旧的配置,换用新的配置.不过这也是好事,说明它在发展,我是欢迎的. 唯一的问题是,要经常跟着它一起更新配置 ...
- Linux命令——id
参考:Linux id Command Tutorial for Beginners (5 Examples) Linux id Command - Print user ID and group I ...
- java基础(12)---异常
一.throws和throw 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 区别: 1.概念 throws E1,E2,E3只是告诉程序这个 ...
- MPU-6050
MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间.当连接到三轴磁强计时,MPU-60X0提供完整的9轴运动 ...