广搜 poj3278 poj1426 poj3126
Catch That Cow
Time Limit: 2000 MS Memory Limit: 65536 KB
64-bit integer IO format: %I64d , %I64u Java class name: Main
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Output
Sample Input
5 17
Sample Output
4
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <queue> using namespace std;
#define max 100002 ///看了别人的代码 说广搜的标记数组 会很大 如果开成局部的会PE
bool vis[max];
int deep[max];
int n,k; int bfs()
{
queue<int>q;
q.push(n);
memset(vis,false,sizeof(vis)); ///全没有遍历过
vis[n]=true; ///起点遍历过了。。
memset(deep,,sizeof(deep)); ///初始都定义为0 走了0步 17
deep[n]=; while(!q.empty())
{
int tp=q.front();
q.pop();
vis[tp]=true;
if(tp==k)
break;
else
{
int ans1=tp+;
int ans2=tp-;
int ans3=tp*;
if(ans1<=&&!vis[ans1])
{
q.push(ans1);
deep[ans1]=deep[tp]+;
//cout<<deep[ans1]<<endl;
vis[ans1]=true;
}
if(ans2>=&&!vis[ans2]) ///注意边界条件 刚刚>0 WA了
{
q.push(ans2);
deep[ans2]=deep[tp]+;
//cout<<deep[ans2]<<endl;
vis[ans2]=true; }
if(ans3<=&&!vis[ans3])
{
q.push(ans3);
deep[ans3]=deep[tp]+;
// cout<<deep[ans3]<<endl;
vis[ans3]=true; }
}
}
return deep[k];
} int main()
{
cin>>n>>k;
printf("%d\n",bfs());
return ;
}
第一道广搜题 参考别人的代码~~~~http://kymowind.blog.163.com/blog/static/1842222972011717112727688/
poj1426 http://blog.csdn.net/lyy289065406/article/details/6647917
Prime Path
Time Limit: 1000 MS Memory Limit: 65536 KB
64-bit integer IO format: %I64d , %I64u Java class name: Main
Description

— It is a matter of security to change such things every now and then, to keep the enemy in the dark.
— But look, I have chosen my number 1033 for good reasons. I am the Prime minister, you know!
— I know, so therefore your new number 8179 is also a prime. You
will just have to paste four new digits over the four old ones on your
office door.
— No, it’s not that simple. Suppose that I change the first digit to an 8, then the number will read 8033 which is not a prime!
— I see, being the prime minister you cannot stand having a non-prime number on your door even for a few seconds.
— Correct! So I must invent a scheme for going from 1033 to 8179 by a
path of prime numbers where only one digit is changed from one prime to
the next prime.
Now, the minister of finance, who had been eavesdropping, intervened.
— No unnecessary expenditure, please! I happen to know that the price of a digit is one pound.
— Hmm, in that case I need a computer program to minimize the cost. You don't know some very cheap software gurus, do you?
— In fact, I do. You see, there is this programming contest going
on... Help the prime minister to find the cheapest prime path between
any two given four-digit primes! The first digit must be nonzero, of
course. Here is a solution in the case above.
1033
1733
3733
3739
3779
8779
8179
The
cost of this solution is 6 pounds. Note that the digit 1 which got
pasted over in step 2 can not be reused in the last step – a new 1 must
be purchased.
Input
test cases (at most 100). Then for each test case, one line with two
numbers separated by a blank. Both numbers are four-digit primes
(without leading zeros).
Output
Sample Input
3
1033 8179
1373 8017
1033 1033
Sample Output
6
7
0 题意:从第一个数编导第二个数最少需要多少步 要求:每次只能改变一个数且这个数与之前的数都不一样 同时这个数时素数
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <queue>
#include <math.h> using namespace std;
int prime[]; void inin()
{
int i,j;
for(i=;i<=;i++){
for(j=;j<i;j++)
if(i%j==){
prime[i]=false;
break;
}
if(j==i) prime[i]=true;
}
} int vis[]; ///是否遍历过
int t[]; ///存放各个位的数
int num[]; ///最后输出的值 int bfs(int n,int m)
{
int temp;
queue<int>q;
q.push(n);
memset(vis,,sizeof(vis));
memset(num,,sizeof(num));
vis[n]=;
memset(t,,sizeof(t)); while(!q.empty())
{
int tp=q.front();
q.pop();
if(tp==m)
return num[tp]; t[]=tp/;
t[]=tp%/;
t[]=tp%/;
t[]=tp%; for(int i=;i<;i++)
{
temp=t[i];
for(int j=;j<=;j++)
if(temp!=j)
{
t[i]=j;
int ans=t[]*+t[]*+t[]*+t[]; if(!vis[ans]&&prime[ans])
{
num[ans]=num[tp]+;
vis[ans]=;
q.push(ans);
}
if(ans==m)
return num[ans];
}
t[i]=temp;
}
}
return -;
} int main()
{
int n,m,tt;
inin();
cin>>tt;
while(tt--)
{
cin>>n>>m;
if(bfs(n,m)!=-)
cout<<bfs(n,m)<<endl;
else
cout<<"Impossible"<<endl;
}
return ;
}
之前判断素数的函数不是这样写的 一直WA 可是我的错在哪里了呢 先贴上 以后看看
int prim(int n)
{
for(int i=;i<sqrt(n);i++)
{
if(n%i==)
{
return false;
break;
}
}
return true;
}
广搜 poj3278 poj1426 poj3126的更多相关文章
- poj3126 Prime Path 广搜bfs
题目: The ministers of the cabinet were quite upset by the message from the Chief of Security stating ...
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5652(二分+广搜)
题目链接:http://acm.hust.edu.cn/vjudge/contest/128683#problem/E 题目大意:给定一只含有0和1的地图,0代表可以走的格子,1代表不能走的格 子.之 ...
- nyoj 613 免费馅饼 广搜
免费馅饼 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...
- poj 3984:迷宫问题(广搜,入门题)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7635 Accepted: 4474 Description ...
- poj 3278:Catch That Cow(简单一维广搜)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 45648 Accepted: 14310 ...
- 双向广搜 POJ 3126 Prime Path
POJ 3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16204 Accepted ...
- 广搜+打表 POJ 1426 Find The Multiple
POJ 1426 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25734 Ac ...
- 双向广搜 codevs 3060 抓住那头奶牛
codevs 3060 抓住那头奶牛 USACO 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 农夫约翰被告知一头逃跑奶牛 ...
随机推荐
- insert执行错误,怎么样获取具体的错误原因
1.开启debug 2.去runtime里面去找最后执行的SQL
- Spring 是如何解析泛型 - ResolvalbeType
Spring 是如何解析泛型 - ResolvalbeType Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Java ...
- The prefix "mvc" for element "mvc:annotation-driven" is not bound 异常
https://www.cnblogs.com/maodot/p/7531042.html The prefix "mvc" for element "mvc:annot ...
- 校园网ipv6连接问题
没有ipv6的信号:只需要进入网络适配器里面先禁用再启用即可.
- vue ui之 iview 事件拦截
用过easyui的,应该清楚easyui组件有很多before事件拦截,有时候会特别重要. 最近在研究vue的ui组件iview虽然功能也不错,感觉还是没有像easyui那样强大,就比如before事 ...
- nginx fastcgi负载均衡
当后端某机器无法连接,或者处理fastcgi请求时异常退出,nginx会将fastcgi请求发送到另外一台机器. 配置文件 http { include mime.types; default_typ ...
- openssl pem密钥文件rsa加密解密例子
准备工作 命令行加密解密,用与比对代码中的算法和命令行的算法是否一致 C:\openssl_test>openssl rsautl -encrypt -in data.txt -inkey pu ...
- PreparedStatement批量处理和事务
PreparedStatement批量处理和事务代码如下: /* * PreparedStatement: 1.addBatch() 将一组参数添加到 PreparedStatement对象内部 2. ...
- Keras下的文本情感分析简介。与MLP,RNN,LSTM模型下的文本情感测试
# coding: utf-8 # In[1]: import urllib.request import os import tarfile # In[2]: url="http://ai ...
- css中元素的位置
一.display 1.display:none 隐藏标签 2.display:inline 将块级标签改为内联标签 3.display:block 将内联标签改为块级标签 4.display:inl ...